ASP.NET教程之ASP.NET 2.0中利用款式、主题和皮肤
你所列的那些其实差不多都可以称为应用服务器(servlet应该说是一种语言更合适)java是开放的,相同的工具就会有很多公司在做,加上java已经发展了很多年了,因此这些工具就很多了。他们很多都是类似的。asp.net ASP.net2.0的主题和皮肤特征使你可以把款式和结构信息寄存到一组自力的文件中,总称为主题(Theme)。接上去我们能够把这个主题使用就任何站点,用于改动该站点内的页面和控件的表面和感到。经由过程改动主题的内容,而不必改动站点的单个页面,就能够容易地改动站点的款式。主题也能够在开辟者之间共享。ASP.NET包括了大批的用于定制使用程序的页面和控件的表面和感到的特征。控件撑持利用Style(款式)工具模子来设置格局属性(比方字体、边框、背景和远景色彩、宽度、高度等等)。控件也撑持利用款式表(CSS)来独自设置控件的款式。你能够用控件属性或CSS来界说控件的款式信息,大概把这些界说信息寄存到独自的一组文件中(称为主题),然后把它使用到程序的一切或部分页面上。独自的控件款式是用主题的皮肤(Skin)属性来指定的。
本文用大批的示例演示了在ASP.NET2.0中怎样利用款式、主题和皮肤特征。
给控件使用款式
Web用户界面长短常天真的,分歧的Web站点的表面和感到是一模一样的。今朝普遍接纳的款式表(CSS)在很年夜水平上就是卖力处置Web上碰到的丰厚的计划需求的。ASP.NET的HTML服务器控件和Web服务器控件都被计划成优先撑持CSS款式表。这一部分会商怎样在服务器控件上利用款式,并演示了它们所供应的Web窗体的表面和感到的十分渺小的把持。
给HTML控件使用款式
尺度的HTML标志经由过程style属性来撑持CSS,我们能够用分号断绝的属性/值对(pair)来设置它。一切的ASP.NETHTML服务器控件都能够接纳尺度HTML标志的体例来承受款式。上面的例子演示了大批的使用到HTML服务器控件的款式。在源代码中你能够看到,这些款式都是在控件显现的时分传送给扫瞄器的。
<spanstyle="font:12ptverdana;color:orange;font-weight:700"runat="server">
Thisissomeliteraltextinsideastyledspancontrol</span>
<p><fontface="verdana"><h4>StyledButton</h4></font><p>
<buttonstyle="font:8ptverdana;background-color:lightgreen;border-color:black;width:100"runat="server">Clickme!</button>
CSS还界说了class属性,你能够把它设置为文档中<style>...</style>内包括的CSS款式界说。Class属性使你可以一次界说款式,在多个服务器标志上利用,制止了款式的反复界说。HTML服务器控件的style属性能够用这类体例来设置,以下所示:
<style>
.spanstyle
{
font:12ptverdana;
font-weight:700;
color:orange;
}
.buttonstyle
{
font:8ptverdana;
background-color:lightgreen;
border-color:black;
width:100
}
……
</style>
<spanclass="spanstyle"runat="server">
Thisissomeliteraltextinsideastyledspancontrol
</span>
<p><fontface="verdana"><h4>StyledButton</h4></font><p>
<buttonclass="buttonstyle"runat="server">Clickme!</button>
在剖析ASP.NET页面的时分,在System.Web.UI.HtmlControls.HtmlControl类中,款式信息被添补到CssStyleCollection范例的Style属性。这个属性实质上是一个字典,它把控件的款式表露为每一个款式属性键的按字符串索引的值汇合。比方,你可使用上面的代码设置和检索HtmlInputText服务器控件的width款式属性:
<scriptlanguage="VB"runat="server">
SubPage_Load(SenderAsObject,EAsEventArgs)
MyText.Style("width")="90px"
Response.Write(MyText.Style("width"))
EndSub
</script>
<inputtype="text"id="MyText"runat="server"/>
上面的例子显现了怎样编程利用Style汇合属性来把持HTML服务器控件的款式:
<scriptlanguage="VB"runat="server">
SubPage_Load(SrcAsObject,EAsEventArgs)
Message.InnerHtml&="<h5>AccessingStyles...</h5>"
Message.InnerHtml&="Thecolorofthespanis:"&MySpan.Style("color")&"<br>"
Message.InnerHtml&="Thewidthofthetextboxis:"&MyText.Style("width")&"<p>"
Message.InnerHtml&="MySelectsstylecollectionis:<br><br>"
DimKeysAsIEnumerator
Keys=MySelect.Style.Keys.GetEnumerator()
DoWhile(Keys.MoveNext())
DimKeyAsString
Key=CStr(Keys.Current)
Message.InnerHtml&="<li>"
Message.InnerHtml&=Key&"="&MySelect.Style(Key)&"<br>"
Loop
EndSub
SubSubmit_Click(SrcAsObject,EAsEventArgs)
Message.InnerHtml&="<h5>ModifyingStyles...</h5>"
MySpan.Style("color")=ColorSelect.Value
MyText.Style("width")="600"
Message.InnerHtml&="Thecolorofthespanis:"&MySpan.Style("color")&"<br>"
Message.InnerHtml&="Thewidthofthetextboxis:"&MyText.Style("width")
EndSub
</script>
一个很大的类库。应用程序之所以难以跨平台,在于直接调用了特定平台的接口,而一个巨大的类库,就能极大地减少应用程序对平台的依赖。 提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。 可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。 当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。 如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。 Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
页:
[1]