У нас есть простая таблица данных. В каждой строке есть флажок. Флажок установлен на автостоп, а у выделенного кода есть обработчик события для события, помеченного флажком. Все работает как положено, ничего сложного.
Однако мы хотим отключить флажки, как только один из них будет установлен, чтобы предотвратить двойную отправку, т. Е. Установлен флажок, все флажки отключены через клиентский JavaScript, отправленная форма.
Чтобы добиться этого, мы вводим некоторый код в событие onclick следующим образом (обратите внимание, что предупреждение предназначено только для тестирования!):
Protected Sub DgAccounts_ItemCreated(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DgAccounts.ItemCreated
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim chk As CheckBox = CType(e.Item.FindControl("chkItemChecked"), CheckBox)
chk.Attributes.Add("onclick", "alert('fired ...');DisableAllDataGridCheckBoxes();")
End If
End Sub
При проверке источника отображаемой страницы мы получаем следующее:
<input id="DgAccounts__ctl2_chkItemChecked" type="checkbox" name="DgAccounts:_ctl2:chkItemChecked" onclick="alert('fired ...');DisableAllDataGridCheckBoxes();setTimeout('__doPostBack(\'DgAccounts$_ctl2$chkItemChecked\',\'\')', 0)" language="javascript" />
Все это выглядит по порядку, однако событие на стороне сервера не запускается - я полагаю, это связано с тем, что флажок отключен, как будто мы просто оставляем предупреждение и снимаем вызов, чтобы отключить флажок, все работает нормально.
Могу ли я заставить событие check-change срабатывать, даже если флажок отключен?