je suis actuellemnt en train de developper un site intranet en asp.net.
Je suis débutante dans ce langage alors j'aurais besoin d'aide.
Pour travailler sur des bases de donner par le site, j'utilise un
Datagrid qui est consitué d'une colonne modèle non visible qui contient
l'identifiant (clé) de la table , les colonnes visibles pour les
différents champs et enfin deux autres colonnes de boutons : l'une avec
le bouton "Supprimer" et l'autre avec "Modifier".
LA suppression ne me pose aucun souci lorsque j'appelle DeleteCommand
sur le DataGrid où je fais la requete DELETE ,car j'arrive a récuperer
l'identifiant de la colonne modele.
Voici le code de la requete :
Dim Cmd As String "DELETE FROM Site WHERE id_site " & CType(e.Item.Cells(0).Controls(1), Label).Text
Par contre , c'est la modification qui me pose problème
: pour ma requete UPDATE , je veux recupérer l'identifiant de la même
manière que ma requete DELETE mais ca ne marche pas.
fais un point d'arret sur la ligne et regarde le type de e.Item.Cells(0).Controls(1)
apparement
c'est pas un Label, ce qui serait bizarre vu que plus haut ca marche.
Donc regarde en mettant un point d'arret, et ca peux venir du fait que
tu sois pas dans le bon evenement.
J'utilise depuis peu
Visual Studio alors je ne sais pas vraiment utiliser les points d'arrêt
mais j'ai utilisé un espion sur le point d'arrêt que tu m'avais
conseillé de faire et il m'informe que pour la ligne de condition avec
WHERE id_site = " & CType(e.Item.Cells(0).Controls(1), Label).Text ,
il est impossible de convertir en Class Label
J'ai essayé en remplacant Label par un T'extBox , il ne me fait plus
d'erreurs de Cast et réagit comme si la modification avait été
faite
(retour au tableau sans textbox)
mais les données ne sont pas modifiées . :(
en fait il vaut mieux éviter les labels pour ce genre de chose.
ce qui se passe c'est que lors de la génération de la page, .MET ajoute
des labels un peu partout donc ensuite il est très difficile de passer
par e.item.cells(X)... pour retrouver le bon contrôle.
dans ton cas tu as certainement un EditItemTemplate qui est différent de ton
ItemTemplate.. les contrôles ne se trouvent donc plus à la même position
à cause des labels ajoutés à la volée...