ASP.NET教程之在ASP.NET中使用PlaceHolder控件
一般的指的.net就是跟java相对的那种,主要是做企业级应用的。你如果想学这个,主要就是学C#和数据库。(ASP.NET好像很重要的,应该也要学的,ASP.NET上好像可以结合VB和C#等多种语言,但是微软主推C#)在从一个Web页面转换到另外一个Web页面时,你的ASP.NET使用程序的用户界面的某些部分经常是坚持稳定的――如某些“粉饰”的部分:页眉处的GIF图片、程度工具条或导航条、左边的链接、等等。你能够持续用它们,而不用为每一个页面重修。 在已往,一个盛行的ASP手艺就是为一个页面的每一个次要部分创立一个include文件,然后建一个全体的HTML表,表的单位包括每一个include文件。这类办法是可行的,可是不美妙,还简单堕落。侥幸的是,ASP.NET可让你用一种更好的办法来办理这个成绩,使用一个VisualStudio.NETPlaceHolderWeb控件。该控件将别的控件作为一个汇合(collection)包括起来。你能够在运转时扫除谁人collection或增加它;比方,你能够在运转时增加一个Web用户控件(一个模块式的Web页面)。我将报告怎样将PlaceHolderWeb控件同Web用户控件分离起来使用,为构建ASP.NET使用程序供应一个办法。起首在VS.NET中创立一个新的ASP.NETWeb使用程序。我在样例代码顶用的是C#。创立一个Web窗体,保留的文件带有ASPX扩大名。我称其为我的main.aspx。该页面是你的使用程序中独一的Web页面,由于你用Web用户控件(ASCX文件)来开辟一切的页面“内容”。
在main.aspx页面中创立你选择的站点粉饰内容。在你想安排站点丰厚内容中央增加一个PlaceHolder控件。然后,将上面的代码增加到你的页面的PageLoad事务中:
privatevoidPage_Load(objectsender,
System.EventArgse)
{
stringp=Request.QueryString.Get("p");
PlaceHolder1.Controls.Clear();
if(p==null)
PlaceHolder1.Controls.Add(LoadControl
("modules/"+"Default"+".ascx"));
else
{
PlaceHolder1.Controls.Add(LoadControl
("modules/"+p+".ascx"));
}
}
经由过程该代码,你能够在项目模块文件夹中看到一个包括Web用户控件页面(ASCX)的名字的查询字符串参数p。你不必将一切ASCX文件都放在一个独自的文件夹中,但这么做切实其实能够进一步断绝使用程序。
一旦你失掉谁人字符串后,清空PlaceHolder的Controls汇合,扫除你在先前大概显现的任何ASCX。然后,检察一下代码,看你是不是必要加载一个缺省的ASCX。最初,假如p查询字符串是哀求的一部分,那末由p查询字符串代表的页面就被加载了。
你不必要费很年夜的劲构建代码来在你的站点上显现多个Web页面。在你的VS.NET项目中增加一个新的Web用户控件页面。一旦你增加了这个页面,你就能够把它看成你的使用程序中的独一的页面来计划并编写代码了;你乃至不必要晓得它将在main.aspx页面中运转。固然,假如该页面必要与主页面交互,情形并没有这么复杂,但在这里我其实不盘算报告这个成绩。
.坚持你的WebGUIs的恒量元素
假想你必要在VS.NET开辟情况中显现一个AccountLogon用户控件(见)。
代码只给开辟职员供应与该页面细节相干的UI。没有举措改动全体页面的别的方面。
如今,当你在一个扫瞄器中运转http://localhost/CSCSdotNET/main.aspx时,起首加载了default.ascx页面,这是因为main.aspx的PageLoad事务的原因。要导航到Login页面,你只需将一个p查询字符串参数增加到哀求——在这个例子中,使用URLhttp://localhost/CSCSdotNET/main.aspx p=01-AccountLogon。如今显现的就是全部main.aspx页面,和你在中看到的静态加载的01-AccountLogon.ascsWeb用户控件。
关于作者:
MarcGusmano在InformationManagementGroup(www.imginc.com)公司次要卖力新兴手艺的研讨,这家公司是MicrosoftGoldCertifiedPartner(金牌资历互助同伴)。Marc次要努力于使用COM+和.NET计划、完成散布式和电子商务办理计划。他在年夜会上做演讲,并在芝加哥办理芝加哥的MicrosoftInternetDevelopersGroup。他的接洽体例是gusmanomarc@imginc.com。
捆绑编译器。用户不需要受制于厂家,自己就能将程序在新平台上编译运行。除了牛B轰轰的linux,估计也没有系统捆绑c/c++的编译器,而且许多新平台都无法支持复杂的c/c++编译器在上面直接运行。 Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。 HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了. 由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。 ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。 比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
页:
[1]