CheckboxList не устанавливается Выбрано с отключенным Viewstate - PullRequest
4 голосов
/ 28 апреля 2010

У меня есть CheckboxList, который, кажется, загружается и все делает правильно, за исключением случаев, когда я выполняю обратную передачу, для него не будет установлено свойство Item.Selected. У меня отключен режим просмотра для всей страницы.

Я загружаю его так (внутри Page_Load при каждой загрузке):

foreach (DataRow service in d.Tables[0].Rows)
{
  cblServices.Items.Add(new ListItem((string)service["description"], service["id"].ToString()));
}

Моя разметка проста:

<asp:CheckBoxList runat="server" ID="cblServices" Width="300px"></asp:CheckBoxList>

и затем я использую в основном что-то вроде этого (в серверном событии _Click для кнопки)

foreach(ListItem item in cblServices.Items){
  if(item.Selected){
    MyLabel.Text+="selected: "+item.Value+item.Text;
  }
}

и MyLabel никогда не добавляет текст. С помощью отладчика я могу проверить, что он достигает цикла foreach _Click, но ни один элемент не выбран. Что может быть причиной этого?

1 Ответ

3 голосов
/ 28 апреля 2010

Если вы заполняете его при каждом вызове Page_Load, а не только при Page.IsPostback = false, вы сбрасываете выбор клиента при обратной передаче.

EDIT Вы должны добавить свои элементы в события PreInit или Init, тогда вы сможете правильно сохранить выбранные элементы.

protected void Page_Init(object sender, EventArgs e)
{
    foreach (DataRow service in d.Tables[0].Rows)
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...