gpt4 book ai didi

c# - 项目正在循环 Repeater 的 ItemDataBound 事件中的所有项目

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:35 25 4
gpt4 key购买 nike

我的 aspx 页面中有一个普通的 Repeater 控件

 <asp:Repeater ID="rpt1" runat="server" OnItemDataBound="rpt1_ItemDataBound">
<ItemTemplate>
<asp:CheckBox ID="chks" runat="server" />
<asp:TextBox ID="txtName" runat="server" CssClass="form-control" Text='<%# DataBinder.Eval(Container,"DataItem.Name").ToString()%>'></asp:TextBox><asp:Label ID="lblValue" runat="server" Visible="false" Text='<%# DataBinder.Eval(Container,"DataItem.Id").ToString() %>'></asp:Label>
</ItemTemplate>
</asp:Repeater>

在按钮上单击我将数据绑定(bind)到 Repeater as

rpt1.DataSource = GetData();
rpt1.DataBind();

绑定(bind)后 ItemDataBound 事件被调用。因为我正在循环遍历转发器项目以进行一些操作

protected void rpt1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{

foreach (RepeaterItem item in rpt1.Items)
{
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
string val = ((Label)item.FindControl("lblValue")).Text;
// Some Stuff
}
}
}

问题是循环每次都从第一个开始。

对于 Ex,如果我的数据是 1 2 3 等等......

迭代为

1
1 2
1 2 3

我怎样才能把它变成

1
2
3

我做错了什么

最佳答案

ItemDataBound已经为转发器中的每个项目调用,因此您不需要那里的循环。

protected void rpt1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string val = ((Label)e.Item.FindControl("lblValue")).Text;
// Some Stuff
}
}

旁注:适用于所有 Data-Bound Web Server Controls .

关于c# - 项目正在循环 Repeater 的 ItemDataBound 事件中的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32968543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com