技术开发 频道

ASP.NET中实现模版的动态加载

  接下来,我们首先创建若干个模版文件。我们先创建两组模版文件,每一组模版文件分别包含有header,footer,item,alternating item四个模版文件,保存成.ascx文件,这样,我们就有两类型风格的模版了,每类型风格的模版中都有自己的header,footer,item,alternating item子模版。下面为其中一个item模版文件,其他的类似。

  以下为引用的内容:

<%@ Control Language="VB" %>
<FONT face="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控件中去,代码如下:

以下为引用的内容:

private void BindDataGrid()
{
    dtSet
= DB.GetDataSet();
    DataList1.DataSource
= dtSet.Tables[0].DefaultView;DataList1.DataBind();
}
private void Page_Load(object sender, System.EventArgs e)
{
    
if(!IsPostBack)
    {
         BindDataGrid();
    }
}

 

最后,分别为两个按钮的clcik事件添加代码,分别使用page.loadtemplate方法去加载我们已经写好的两套模版组中的模版,代码如下:

以下为引用的内容:

private void Button1_Click(object sender, System.EventArgs e)
{
  
// Load
  templatesDataList1.AlternatingItemTemplate =Page.LoadTemplate("AltItemTempate.ascx");
  DataList1.ItemTemplate
=Page.LoadTemplate("ItemTemplate.ascx");
  DataList1.HeaderTemplate
=Page.LoadTemplate("HeadTemplate.ascx");
  DataList1.FooterTemplate
= Page.LoadTemplate("FootTemplate.ascx");
  BindDataGrid();
}
private void Button2_Click(object sender, System.EventArgs e)
{
  
// Load
  templatesDataList1.AlternatingItemTemplate =Page.LoadTemplate("AltItemTempate2.ascx");
  DataList1.ItemTemplate
= Page.LoadTemplate("ItemTemplate2.ascx");
  DataList1.HeaderTemplate
= Page.LoadTemplate("HeadTemplate2.ascx");
  DataList1.FooterTemplate
= Page.LoadTemplate("FootTemplate2.ascx");  BindDataGrid();
}
0
相关文章