|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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#相比。 |
|