仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 806|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET教程之ASP.NET中完成模版的静态加载

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:28:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
有时也搞不懂应该学那种;主要看你以后去的那个公司是使用哪种了。就像王千祥的课上说的:企业应用现在主要就三层(其实也差不多就是MVC):表示层(主要使用html写的,很简单)、业务逻辑层(主要就是应用服务器的)。最后就是数据层(其实就是学习数据库)ASP.NET中,常常会利用到templates(模版)功效,好比在datagrid,datalist,repeater等控件中,利用templates,将会年夜年夜加强其功效。以往,我们通常为在计划程序时,就已设置好控件中的模版是如何的了。可是,有的时分,大概我们必要静态加载模版,好比,当你请求你的使用程序的界面作风跟着用户的需求而变更时,你就必要到静态加载模版的功效了。但要注重的是,并非一切的web控件都撑持模版功效,并且要注重,哪些控件撑持模版的哪些功效,上面复杂列出了一些撑持模版功效的控件:
Repeater控件,撑持的模版有:[img=1style=,1src=]http://www.ckuyun.com/[/img]
HeaderTemplate,FooterTemplate,ItemTemplate,AlternatingItemTemplate,SeperatorTemplate.
Datelist控件,撑持的模版有:
HeaderTemplate,FooterTemplate,ItemTemplate,AlternatingItemTemplate,SeparatorTemplate,SelectedItemTemplate,EditItemTemplate.
Datagrid控件,撑持的模版有:
HeaderTemplate,FooterTemplate,ItemTemplate,EditItemTemplate,Pager.
上面,我将以静态加载datalist控件的模版来讲明怎样静态加载模版:
起首来懂得静态加载模版的道理。在.NET中,有templatecontrol类,这个类是page和usercontrol类的基类。它也同时界说了page和usercontrol类的基础功效。该类供应了两个办法:loadcontrol和loadtemplate。Loadcontrol办法装载来自内部文件的控件,而且前往usercontrol类工具。而loadtemplate办法加载来自内部文件的模版而且前往的是Itemplate工具。
Loadtemplate办法中,只要一个参数,参数值是内部模版文件的路径,而且前往itemplate工具。而datalist控件供应了一系列的属性,能够设置各类模版的属性,包含有AlternatingItemTemplate,EditItemTemplate,FooterTemplate,HeaderTemplate,ItemTemplate,SelectedItemTemplate,和SeperatorTemplate,鄙人文中,将会看到相干先容。
接着,我们入手下手先容例子,在示例程序中,是利用静态创立数据表和数据列的,而且将数据的创立封装到一个Db类中,好让读者进一步回忆怎样静态创立数据表,数据列等,并没用从数据库中提取(固然,你也能够用传统的读取数据库的办法),
以下为援用的内容:
publicclassDB{publicDB(){}///<summary>///MethodreturnsaDataSetobjectfilledwithdata///</summary>publicstaticDataSetGetDataSet(){//创立dataset和datatableDataSetds=newDataSet();DataTabletable=newDataTable("Records");DataColumncol;//增添一个列col=newDataColumn();col.DataType=System.Type.GetType("System.Int32");col.ColumnName="ID";col.ReadOnly=true;col.Unique=true;table.Columns.Add(col);col=newDataColumn();col.DataType=System.Type.GetType("System.String");col.ColumnName="Name";col.AutoIncrement=false;col.Caption="Name";col.ReadOnly=false;col.Unique=false;table.Columns.Add(col);col=newDataColumn();col.DataType=System.Type.GetType("System.String");col.ColumnName="Address";col.AutoIncrement=false;col.Caption="Address";col.ReadOnly=false;col.Unique=false;table.Columns.Add(col);//增添一笔记录DataRowrow=table.NewRow();row["ID"]=1001;row["Name"]="MelanieGiard";row["Address"]="23rdStreet,ParkRoad,NYCity,NY";table.Rows.Add(row);row=table.NewRow();row["ID"]=1002;row["Name"]="PuneetNehra";row["Address"]="3rdBlvd,AshokVihar,NewDelhi";table.Rows.Add(row);row=table.NewRow();row["ID"]=1003;row["Name"]="RajMehta";row["Address"]="NagrathChowk,Jabalpur";table.Rows.Add(row);row=table.NewRow();row["ID"]=1004;row["Name"]="MaxMuller";row["Address"]="25NorthStreet,Hernigton,Russia";table.Rows.Add(row);//AddDataTabletoDataSetds.Tables.Add(table);//ReturnDataSetreturnds;}}
接上去,我们起首创立多少个模版文件。我们先创立两组模版文件,每组模版文件分离包括有header,footer,item,alternatingitem四个模版文件,保留成.ascx文件,如许,我们就有两范例作风的模版了,每范例作风的模版中都有本人的header,footer,item,alternatingitem子模版。上面为个中一个item模版文件,其他的相似。
以下为援用的内容:
<%@ControlLanguage="VB"%><FONTface="verdana"color="green"size="2"><b>ID:</b><%#DataBinder.Eval(CType(Container,DataListItem).DataItem,"ID")%><b>Name:</b><%#DataBinder.Eval(CType(Container,DataListItem).DataItem,"Name")%><br><b>Address:</b><%#DataBinder.Eval(CType(Container,DataListItem).DataItem,"Address")%><p></FONT>
最初,我们入手下手创立使用程序,新建一个工程,增加两个按钮和一个datalist控件以下图:



以后创立一个binddatagrid的办法,将dataset绑定到datalist控件中往,代码以下:
以下为援用的内容:
privatevoidBindDataGrid(){dtSet=DB.GetDataSet();DataList1.DataSource=dtSet.Tables[0].DefaultView;DataList1.DataBind();}privatevoidPage_Load(objectsender,System.EventArgse){if(!IsPostBack){BindDataGrid();}}
最初,分离为两个按钮的clcik事务增加代码,分离利用page.loadtemplate办法往加载我们已写好的两套模版组中的模版,代码以下:
以下为援用的内容:
 privatevoidButton1_Click(objectsender,System.EventArgse){//LoadtemplatesDataList1.AlternatingItemTemplate=Page.LoadTemplate("AltItemTempate.ascx");DataList1.ItemTemplate=Page.LoadTemplate("ItemTemplate.ascx");DataList1.HeaderTemplate=Page.LoadTemplate("HeadTemplate.ascx");DataList1.FooterTemplate=Page.LoadTemplate("FootTemplate.ascx");BindDataGrid();}privatevoidButton2_Click(objectsender,System.EventArgse){//LoadtemplatesDataList1.AlternatingItemTemplate=Page.LoadTemplate("AltItemTempate2.ascx");DataList1.ItemTemplate=Page.LoadTemplate("ItemTemplate2.ascx");DataList1.HeaderTemplate=Page.LoadTemplate("HeadTemplate2.ascx");DataList1.FooterTemplate=Page.LoadTemplate("FootTemplate2.ascx");BindDataGrid();}
就安全性而言,Java已经远远低于VB.NET,更无法与安全性著称的C#相比。
深爱那片海 该用户已被删除
沙发
发表于 2015-1-19 14:14:23 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
莫相离 该用户已被删除
板凳
发表于 2015-1-25 18:22:30 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
admin 该用户已被删除
地板
发表于 2015-2-3 12:51:13 | 只看该作者
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
小妖女 该用户已被删除
5#
发表于 2015-2-9 01:52:20 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
活着的死人 该用户已被删除
6#
发表于 2015-2-26 17:49:20 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
简单生活 该用户已被删除
7#
发表于 2015-3-8 16:29:08 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
飘灵儿 该用户已被删除
8#
发表于 2015-3-16 05:36:52 | 只看该作者
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。
若天明 该用户已被删除
9#
发表于 2015-3-22 20:24:12 | 只看该作者
ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-10 06:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表