У меня есть вид сетки asp.net, и внутри вида сетки у меня есть флажок в заголовке вида сетки примерно так:
<HeaderTemplate>
<asp:CheckBox Width="1px" ID="HeaderLevelCheckBox" AutoPostBack="true" OnCheckedChanged="SelectAllRows" runat="server" />
</HeaderTemplate>
Это дает мне хороший маленький флажокв верхней части таблицы: событие OnCheckedChanged
вызывает функцию с именем SelectAllRows
, которая выглядит следующим образом:
Public Sub SelectAllRows(ByVal sender As Object, ByVal e As System.EventArgs)
Dim gr As GridViewRow = DirectCast(DirectCast(DirectCast(sender, CheckBox).Parent, DataControlFieldCell).Parent, GridViewRow)
Dim h As CheckBox = DirectCast(gr.FindControl("HeaderLevelCheckBox"), CheckBox)
For Each Row As GridViewRow In Me.gvLineItems.Rows
Dim cb As CheckBox = CType(Row.FindControl("chkSelector"), CheckBox)
cb.Checked = h.Checked
Next
End Sub
Так что, если я нажимаю этот флажок заголовка, он проверяет все элементы ввид сетки, и если я сниму флажок, он снимает все элементы в виде сетки.Это работает нормально ... но, похоже, не работает, если страница загружается, и я проверяю флажок заголовка вида сетки на true, и он выбирает все элементы в виде сетки, затем я нажимаю кнопку, такую как кнопка DELETE
это вызывает некоторый код на стороне сервера.Этот код просто циклически просматривает сетку и проверяет, был ли установлен флажок, и вызывает ли он код для удаления элемента.Что-то на этот счет:
For Each Row As GridViewRow In Me.gvLineItems.Rows
Dim cb As CheckBox = CType(Row.FindControl("chkSelector"), CheckBox)
Dim lID As Long = Convert.ToInt32(gvLineItems.DataKeys(Row.RowIndex).Value)
If cb IsNot Nothing AndAlso cb.Checked Then
'ok to delete
End If
Next
Когда я помещаю часы и отлаживаю это, кажется, что значение cb всегда ложно ... Даже если оно было установлено в true, когда я щелкнул флажок заголовка.Что дает ???
Фактический chkSelector в виде сетки предназначен для каждой строки, и он выглядит так:
<ItemTemplate>
<asp:CheckBox ID="chkSelector" runat="server" onclick="ChangeRowColor(this)" />
</ItemTemplate>
Также я уже проверяю обратную передачу .. это не такпроблема, помните, chkSelector не автоответчик ...
Спасибо