【.Net码农】ASP.NET数据控件的自定义模板

来源:互联网 发布:新白狐网络歌手 编辑:程序博客网 时间:2024/06/05 14:36

ASP.NET数据控件的自定义模板

DataGrid,DataList,Repeater三个数据控件都支持模板功能,比如下面是DataList的项模板,

<asp:DataList id="DataList1" runat="server" EnableViewState="False">    <ItemTemplate>        <%# DataBinder.Eval(Container, "DataItem.id") %>    </ItemTemplate></asp:DataList>

在一般情况下,这个模板是我们在程序设计的时候写死的,现在我们要做的是怎么在运行时动态改变模板项的定义。

首先新建一个ASCX用户自定义控件,内容如下:

<TABLE id="Table1" cellSpacing="0" cellPadding="0" width="100%" border="1">    <TR>        <TH>操作</TH>        <TH>用户名</TH>        <TH>论坛ID</TH>        <TH>电子邮件</TH>        <TH>配额</TH>        <TH>管理员</TH>    </TR>    <TR>        <TD><%# DataBinder.Eval(Container, "DataItem.id") %></TD>        <TD><%# DataBinder.Eval(Container, "DataItem.uid") %></TD>        <TD><%# DataBinder.Eval(Container, "DataItem.BBSID","<a href=""javascript:showbbsid('{0}');"">{0}</a>") %></TD>        <TD><%# DataBinder.Eval(Container, "DataItem.email") %></TD>        <TD><%# DataBinder.Eval(Container, "DataItem.pur") %></TD>        <TD><%# DataBinder.Eval(Container, "DataItem.op") %></TD>    </TR>    <TR>        <TD colspan="6">            <TABLE id="Table2" cellSpacing="0" cellPadding="0" width="100%" border="0">                <TR>                    <TD>申请理由:</TD>                </TR>                <TR>                    <TD><%# DataBinder.Eval(Container, "DataItem.memostr") %></TD>                </TR>                <TR>                    <TD><HR></TD>                </TR>                <TR>                    <TD>认证说明:</TD>                </TR>                <TR>                    <TD><%# DataBinder.Eval(Container, "DataItem.excuse") %></TD>                </TR>            </TABLE>        </TD>    </TR></TABLE>


当然,上面例举的只是一个示例,你也可以自己建立一个模板文件,要注意的是,扩展名必须为.ascx,代码的规范必须模板列的规则。

建好模板后,我们要做的就是怎么在程序里调用了,第一步,先在页面的相应位置添加一个空白的Datalist控件,在Page_Load事件里加上一句代码:
DataList1.ItemTemplate = Page.LoadTemplate("test.ascx") 

然后就可以绑定数据库了。。。怎么样?简单吗?




0 0
原创粉丝点击