Я работаю над приложением ASP.NET для веб-форм. У меня есть список из четырех столбцов, связанный с источником данных на pageload (), заполненный именами контактов. Один из столбцов содержит флажок. Пользователи выбирают флажок, чтобы указать, что соответствующий контакт должен быть обработан на следующем шаге.
Форма также содержит кнопку. При нажатии этой кнопки следующий код запускается для обработки выбранных контактов.
foreach (var x in lvPeople.Items)
{
chkSelected = (CheckBox)x.FindControl("IsLetterRecipient");
if (chkSelected.Checked)
{
// the person was selected by the user, do stuff here...
}
}
Когда я устанавливаю точку останова в строке, содержащей оператор IF, точка останова срабатывает семь раз (один раз для каждой строки в списке просмотра == семь флажков). Однако код внутри блока IF никогда не запускается, потому что .Checked всегда False, независимо от того, установлен ли флажок на самом деле.
AutoPostBack, установленный на флажок, имеет значение False. Установите флажок EnableViewState, и для списка отображается значение True.
Что я делаю не так? Как я могу получить .Checked статус флажков?