ASP.NET: почему мое событие CheckedChanged не выполняется, когда я снимаю флажок с элемента управления?

У меня есть флажок, который является частью повторителя. Я пытаюсь заставить событие checkbox's checkedchanged происходить, когда я устанавливаю флажок и когда я снимаю флажок. Однако в настоящее время событие срабатывает только тогда, когда я устанавливаю флажок ... не тогда, когда я также снимаю флажок. Я опубликую код ниже, и, надеюсь, кто-то сможет направить меня в правильном направлении. Спасибо!

Добавление обработчика в элемент управления "Флажок повторителя"

Dim MyCheckBox As New CheckBox

MyCheckBox = e.Item.FindControl("MyCheckBox")
AddHandler MyCheckBox.CheckedChanged, AddressOf MyCheckBox_CheckedChanged

Событие моего обработчика CheckedChanged

    Private Sub MyCheckBox_CheckedChanged(sender As Object, e As System.EventArgs)
         Dim RepeaterItem As RepeaterItem

         For Each RepeaterItem In MyRepeater.Items
             If IsListItem(RepeaterItem) Then
                If CType(sender, CheckBox).Checked Then
                   CType(RepeaterItem.FindControl("SelectionCheckBox"), CheckBox).Checked = True
                Else
                   CType(RepeaterItem.FindControl("SelectionCheckBox"), CheckBox).Checked = False
                End If
             End If
         Next

    End Sub

Объявление флажка файла ASPX

<asp:CheckBox ID="MyCheckBox" AutoPostBack="True" Text="" runat="server" />

person daveomcd    schedule 26.09.2012    source источник
comment
Почему вы зацикливаетесь на своем ретрансляторе, чтобы установить / снять флажки в отмеченном измененном событии? Они должны поддерживать свое состояние без необходимости делать это вручную.   -  person Cruril    schedule 27.09.2012
comment
Был ли CheckBox объявлен в вашем файле .vb или в вашем файле .aspx? Предполагая, что оно объявлено в вашем файле .aspx, вы должны просто перехватить событие там, а не делать это в коде позади.   -  person Peter    schedule 27.09.2012
comment
@Chris, у меня есть флажок в шаблоне заголовка моего повторителя, а затем флажок для каждой строки в моем повторителе. Я хочу использовать флажок вверху, чтобы выбрать все или отменить выбор всех   -  person daveomcd    schedule 27.09.2012


Ответы (1)


У вас есть AutoPostBack = true, настроенный в вашем файле ASPX.

person arunlalam    schedule 26.09.2012
comment
@ Wade73, извините, это был неправильный ответ, я говорил, что это уже было в моем коде, но забыл включить его выше в вопрос. Извините за путаницу. Он по-прежнему работает, как я описал выше. - person daveomcd; 27.09.2012
comment
@Daveomcd Извините за комментарий, спасибо за разъяснение. - person Wade73; 27.09.2012