我试图在页面移动(分页)之前获得所有中继器选中的复选框,并将它们存储在某个位置。
foreach (RepeaterItem ri in rpt.Items)
{
CheckBox box = (CheckBox)ri.FindControl("chkBox");
if (box.Checked)
{
...
}
}问题是我从哪里调用这个函数?我尝试从ObjectDataSource1_Selected (我使用objectdatasource来填充中继器)和ObjectDataSource1_Selecting调用它,但rpt.Items.Count也是0。
rpt_PreRender()事件,返回正确的项数,但它发生在选中复选框之前而不是之后。
我能做什么?
发布于 2009-06-29 05:21:48
你正在寻找的方式不是possible...plz尝试使用这个代码...
if (Repeater1.Items.Count > 0)
{
for (int count = 0; count < Repeater1.Items.Count; count++)
{
CheckBox chk = (CheckBox)Repeater1.Items[count].FindControl("CheckBox1");
if (chk.Checked)
{
}
}
}发布于 2009-06-28 11:20:14
Repeater没有内置的分页功能(像GridView或其他复杂的控件),所以它不提供像PageIndexChanging这样的事件。因此,我假设您有自己的页面导航实现。因此,您应该调用在该已实现函数中呈现的函数。
如果这个问题与分页无关,我会简单地建议使用ItemDataBound/ItemCreated事件。
https://stackoverflow.com/questions/1054674
复制相似问题