У меня есть страница с таблицей материалов, и мне нужно разрешить пользователю выбирать строки для обработки. Я понял, как добавить столбец флажков в таблицу, но я не могу понять, как проверить, проверены ли они при отправке формы. Если бы они были статическими элементами, я мог бы просто проверить выполнение this.theCheckBox
, но они генерируются программно.
Также я не очень доволен тем, как я прикрепляю к ним свои данные (вставляя их в свойство ID).
Я не уверен, имеет ли это значение, но я смотрю на небольшую уловку-22, так как мне нужно знать, какие из флажков, которые были созданы последний раз, были проверены, прежде чем я смогу повторно запустите код, который их создал.
Редактировать: я нашел почти решение. Установив свойство AutoPostBack
и событие CheckedChanged
:
checkbox.AutoPostBack = false;
checkbox.CheckedChanged += new EventHandler(checkbox_CheckedChanged);
Я могу получить код, который будет вызываться в ответном сообщении для любого измененного флажка. Однако у этого есть две проблемы:
- Обратный звонок обрабатывается после (или во время, я не уверен)
Page_Load
где мне нужно использовать эту информацию - Обратный вызов не вызывается для флажков, которые были отмечены при загрузке страницы и все еще установлены.
Редактировать 2:
В итоге я пометил все свои идентификаторы префиксом know и вставил это в начало Form_Load
:
foreach (string v in this.Request.Form.AllKeys)
{
if (v.StartsWith(Prefix))
{
var data = v.Substring(Prefix.Length);
}
}
все остальное, кажется, запаздывает.