学而实习之 不亦乐乎

Repeater控件绑定DataRow[]

2019-01-17 15:44:28

这里之所以提到绑定DataRow[],主要是因为DataRow[]不像其他数据源,如DataSet、DataTable等,可以在后台指定数据源之后,然后在前台用Eval()函数绑定就可以了。使用DataRow时需要做一点改变。
下面就是绑定的简单过程

后端:
System.Data.DataSet ds = ...
System.Data.DataRow[] drs = ds.Tables[0].Select();
Repeater1.DataSource = drs;


前端:
方法1:注意Eval()函数中列名需要有 []。通常使用DataSet或者DataTable则不需要[]。

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
       <a href="#"> <%#Eval("[COLUMN_NAME]").ToString()%></a>
    </ItemTemplate>
</asp:Repeater>

方法2:

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
       <a href="#"> <%#((System.Data.DataRow)Container.DataItem)["COLUMN_NAME"].ToString()%></a>
    </ItemTemplate>
</asp:Repeater>