c# - 项目模板中的 <%# DataBinder.Eval(Container.DataItem ,"ColumnName") %> 究竟做了什么?

标签 c# .net asp.net data-binding datalist

我是第一次使用 DataList。一切正常,我可以在屏幕上看到数据。 我在项目模板中使用此代码。

<asp:DataList ID="DataList1" runat="server">
    <FooterTemplate>          
    </FooterTemplate>
    <HeaderTemplate>              
    </HeaderTemplate>
    <ItemTemplate>          
        <%# DataBinder.Eval(Container.DataItem,"AA") %>
        <%# DataBinder.Eval(Container.DataItem,"BB") %>
        <%# DataBinder.Eval(Container.DataItem,"CC") %>
    </ItemTemplate>
</asp:DataList>

这是我绑定(bind)的DataTable

DataTable dt = new DataTable();
dt.Columns.Add("AA");
dt.Columns.Add("BB");
dt.Columns.Add("CC");

dt.Rows.Add("1", "2", "3");
dt.Rows.Add("10", "20", "30");
dt.Rows.Add("100", "200", "300");
dt.Rows.Add("1000", "2000", "3000");

DataList1.DataSource = dt;
DataList1.DataBind();

DataBinder.Eval(Container.DataItem,"ColumnName") 究竟做了什么? 提前致谢

最佳答案

参数 1:Container.DataItem 指的是绑定(bind)到当前容器的 datasource

参数 2:应评估 DataItem 的公共(public)属性。

因此 Eval 使用反射来评估 DataItem 上的公共(public)属性。

例如:

在您的情况下,它计算 DataTable 上的 BB 列。

关于c# - 项目模板中的 <%# DataBinder.Eval(Container.DataItem ,"ColumnName") %> 究竟做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4813937/

相关文章:

c# - C#中的字符串值枚举

c# - 我可以从 .NET/C# 获取其他进程的命令行参数吗?

c# - 此资源不支持“multipart/form-data”

c# - SignalR Authorize 被多次调用

c# - DataTable 中的列消失

c# - 在接口(interface)上拦截

c# - 获取通用列表中对象的索引

c# - 将 .net core 5.0 发布到单个 exe 文件中

c# - 在不知道 T 的情况下将泛型类型指定为参数参数

c# - IEnumerable 到参数数组