是什么意思? Item Template 中到底做什么?">

<%# DataBinder.Eval(Container.DataItem,"ColumnName") %> 是什么意思? Item Template 中到底做什么?

发布于 2024-10-14 16:05:32 字数 975 浏览 6 评论 0原文

我第一次使用 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>

这是我绑定的 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") 到底做什么? 先感谢您

Iam using DataList for the first time. Every thing works fine and I am able to see the data in the screen.
I am making use of this code in the item template.

<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>

This is the DataTable that I am binding

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();

What does DataBinder.Eval(Container.DataItem,"ColumnName") do exactly.?
Thank you in Advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

通知家属抬走 2024-10-21 16:05:32

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

参数 2:应评估的 DataItem 上的公共属性。

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

例如:

在您的情况下,它会评估 DataTable 上的 BB 列。

Argument 1: Container.DataItem refers to the datasource that is bound to the current container.

Argument 2: The public property on the DataItem which should be evaluated.

So Eval uses reflection to evaluate the public property on the DataItem.

ex:

In you case it evaluates the BB column on the DataTable.

四叶草在未来唯美盛开 2024-10-21 16:05:32

以下行将执行与表中行数一样多的次数。

<%# DataBinder.Eval(Container.DataItem,"AA") %>
<%# DataBinder.Eval(Container.DataItem,"BB") %>
<%# DataBinder.Eval(Container.DataItem,"CC") %>

每次Container.DataItem都会有数据表中相应的DataRowView行。

该项目中发生的情况与此代码类似。

DataView dataView = new DataView(dt);
foreach (DataRowView dataRow in dataView)
{              
    System.Diagnostics.Debug.WriteLine(DataBinder.Eval(dataRow,"AA").ToString());
    System.Diagnostics.Debug.WriteLine(DataBinder.Eval(dataRow,"BB").ToString());
    System.Diagnostics.Debug.WriteLine(DataBinder.Eval(dataRow,"CC").ToString());
}

获得的输出将是

1
2
3
10
20
30
100
200
300
1000
2000年
3000

The following lines will be executed as many times as the number of rows in the Table.

<%# DataBinder.Eval(Container.DataItem,"AA") %>
<%# DataBinder.Eval(Container.DataItem,"BB") %>
<%# DataBinder.Eval(Container.DataItem,"CC") %>

Each time Container.DataItem will have the corresponding DataRowView of the rows in the datatable.

What happens in the item is similar to this code.

DataView dataView = new DataView(dt);
foreach (DataRowView dataRow in dataView)
{              
    System.Diagnostics.Debug.WriteLine(DataBinder.Eval(dataRow,"AA").ToString());
    System.Diagnostics.Debug.WriteLine(DataBinder.Eval(dataRow,"BB").ToString());
    System.Diagnostics.Debug.WriteLine(DataBinder.Eval(dataRow,"CC").ToString());
}

And the output obtained will be

1
2
3
10
20
30
100
200
300
1000
2000
3000

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文