获取Repeater的项目(Get Repeater's Items)

2019-09-17 03:55发布

我想刚刚页面运动(分页)之前得到直放站项目的所有转发的复选框处于选中状态,并将其存储在某个地方。

 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()事件,返回项目的权数,但它的复选框的选择之前发生的,而不是之后。

我能做什么?

Answer 1:

你正在寻找的方式是不可能的...... 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)
            {

            }
        }
    }


Answer 2:

中继器没有内置式分页(如GridView或其他复杂的控制),所以它不提供活动,如PageIndexChanging 。 因此,我认为,你有你自己的页面导航的实现。 因此,你应该叫你有一个实施的功能中提供的功能。

如果问题是无关的寻呼,我干脆建议ItemDataBound/ItemCreated事件。



文章来源: Get Repeater's Items