Получить предметы повторителя - PullRequest
3 голосов
/ 28 июня 2009

Я пытаюсь получить все выбранные флажки повторителя элемента повторителя непосредственно перед перемещением страницы (разбиение на страницы) и сохранить их в каком-то месте.

 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 () возвращает правильное количество элементов, но это происходит до выбора флажков, а не после.

Что я могу сделать?

Ответы [ 2 ]

7 голосов
/ 29 июня 2009

то, как ты выглядишь, невозможно ... пожалуйста, попробуйте использовать этот код ...

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

            }
        }
    }
0 голосов
/ 28 июня 2009

Ретранслятор не имеет встроенной пагинации (например, GridView или других сложных элементов управления), поэтому он не предлагает такие события, как PageIndexChanging. Поэтому я предполагаю, что у вас есть собственная реализация навигации по страницам. Поэтому вам следует вызвать функцию, которую вы представили в этой реализованной функции.

Если бы вопрос не имел отношения к пейджингу, я бы просто предложил ItemDataBound/ItemCreated события.

...