VB.Net Vérifier si une liste de case à cocher élément est coché/décoché

J'ai une liste de case à cocher qui est rempli avec des entrées à partir de ma base de données sur le chargement de la page. J'ai besoin de mettre à jour une entrée dans ma base de données lorsqu'un élément est activé et quand un article n'est pas cochée. Je fais le suivant:

<asp:CheckBoxList id="check1" AutoPostBack="True" TextAlign="Right" OnSelectedIndexChanged="Check" runat="server">

</asp:CheckBoxList>

Et la fonction:

Sub Check(ByVal sender As Object, ByVal e As EventArgs)
    Dim sql As String
    If check1.SelectedItem.Selected = True Then
        sql = "UPDATE Customer SET unauthorized = 'True' WHERE ID = @ID"
        db.execUpdateQuery(sql, New SqlClient.SqlParameter("@ID", check1.SelectedItem.Value))
    Else
        sql = "UPDATE Customer SET unauthorized = 'False' WHERE ID = @ID"
        db.execUpdateQuery(sql, New SqlClient.SqlParameter("@ID", check1.SelectedItem.Value))
    End If
End Sub

Mais quand j'ai décocher un bouton le cas d'autre n'est jamais couru. Aussi, si j'ai 4 boutons vérifié et j'ai décocher tous les quatre boutons, quand j'ai décocher la quatrième bouton j'obtiens une erreur à la ligne:

If check1.SelectedItem.Selected = True Then

L'erreur est: "la référence d'Objet n'est pas définie à une instance d'un objet."

Est-il une meilleure façon de vérifier si un élément de la liste est cochée ou décochée?

Grâce

  • Avec de la vieille école HTML décoché les cases ne sont pas les valeurs de retour sur le serveur...c'est peut-être ce que vous êtes en cours d'exécution dans ici? Avec rien vérifié il n'y aurait pas SelectedItem dans votre checkboxlist.
  • Ne devriez-vous pas être en la fondant sur des ItemCheck et pas SelectedIndexChange?
  • J'ai essayé et il n'a pas l'exécution de la fonction
InformationsquelleAutor ewein | 2012-05-14