gpt4 book ai didi

c# - 如何从 asp :Repeater? 循环遍历项目模板中的项目

转载 作者:IT王子 更新时间:2023-10-29 04:06:02 27 4
gpt4 key购买 nike

我有一个中继器,它在 preRender 上与项目绑定(bind)。在项目模板中,每一行都有一个复选框。这很好用。

我试图在项目模板绑定(bind)后循环遍历项目模板中的所有复选框。有什么办法吗?

最佳答案

我觉得您想使用 ItemDataBound 事件。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemdatabound.aspx

您需要检查 RepeaterItem 的 ItemType,这样您就不会试图在 Header/Footer/Seperator/Pager/Edit 中找到复选框

您的事件看起来类似于:

void rptItems_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
var checkBox = (CheckBox) e.Item.FindControl("ckbActive");

//Do something with your checkbox...
checkBox.Checked = true;
}
}

可以通过在您的代码后面添加事件来引发此事件,如下所示:

rptItems.ItemDataBound += new RepeaterItemEventHandler(rptItems_ItemDataBound);

或者将其添加到客户端的控件中:

onitemdatabound="rptItems_ItemDataBound"

或者,您可以按照其他人的建议进行操作并迭代 RepeaterItems,但是您仍然需要检查项目类型。

foreach (RepeaterItem item in rptItems.Items)
{
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
var checkBox = (CheckBox)item.FindControl("ckbActive");

//Do something with your checkbox...
checkBox.Checked = true;
}
}

在绑定(bind) Repeater 之后,您可能希望在 Page PreRender 中执行此操作。

关于c# - 如何从 asp :Repeater? 循环遍历项目模板中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6281559/

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