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
Vous devez vous connecter pour publier un commentaire.
Si la vérification est en état indéterminé, cela renvoie toujours vrai. Vous voudrez peut-être remplacer
avec
si vous voulez seulement agir, par exemple, les éléments cochés.
Vous pouvez l'essayer aussi