Récupération d'un Identifiant dans un GridView pour faire un CommandArgument
Bon, alors je suis avec une histoire de GRidView pour fiare un module de messagerie. L'idée est davoir un tableau qui présente la liste des mesage avec Emmetteur, Date et sujet. En bout de ligne on mets deux boutons pour :
- voir le détail
- supprmier le message
Mon souci est le suivant : je n'arrive pas à lui envoyer l'identifiant du mesage (celui dans la table dans la BDD) que je remonte ans mon RecordSet.
J'avais fait un truc avec un champ en début de GridView que je cachais par du CSS, mais je trouve que c'est pas propre et surtout j'ai découvert le DataItem().
J'ai donc tenté un truc bien, mais j'ai mesasge d'erreur qui me laisse perplexe.
Voici le code mon GRidView côté HTML :
Code:
1 2 3
|
<asp:SqlDataSource ID="sdsMessagerie" runat="server" ConnectionString="<%$ ConnectionStrings:DataDev %>"></asp:SqlDataSource>
<asp:GridView ID="gvMessagerie" runat="server" DataSourceID="sdsMessagerie"></asp:GridView> |
Puis le CodeBehind pour le CommandArgument :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Protected Sub gvMessagerie_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvMessagerie.RowCommand
Select Case e.CommandName
Case "DetailMessage"
Response.Redirect(GetPage("DetailMessage", enTypeRetour.html) & "&idmsg=" & gvMessagerie.Rows(e.CommandArgument).DataItem(0).ToString)
Case "SuppMessage"
Dim suppMSG As Int16 = New DManager("DataDev").RetournerScalaire("EXEC SITE_Messagerie_SuppMSG " & gvMessagerie.Rows(e.CommandArgument).Cells(0).Text & ",'" & Mode & "'")
gvMessagerie.DataBind()
Case Else
End Select
End Sub |
Vous pouvez voir dans la cas de SuppMessage, l'ancienne méthode.
Par contre, le DetailMessage génère le message suivant :
Citation:
Variable objet ou variable d'un bloc With non définie.
Je ne comprends pas ce message. Pouvez vous m'aider ?