Bonjour tout le monde,
Je veux passer deux variables dans commandargument d'un linkbutton en asp.net
Merci![]()
Bonjour tout le monde,
Je veux passer deux variables dans commandargument d'un linkbutton en asp.net
Merci![]()
c'est avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part Eval ("nomvariable") ?
Tu peux par exemple concaténer les deux variables que tu veux passer en les séparant par un "|" ou tout autre caractère dont tu es sûr qu'il n'apparaitra pas dans le contenu de tes variables.
Et apres ?
Est ce que tu peux me donner plus d'informations a ce sujet ?
Avec toute la bonne volonté du monde, vu le peu d'informations que tu donnes, je ne vois pas comment je pourrais t'en dire plus...
Poste au moins un peu de code et décris précisément ce que tu cherches à faire, j'ai malheureusement égaré ma boule de cristal.
Ok,
J'ai un gridview qui charge un table de la BD et qui contient un linkbutton select en template field.
Je veux recuperer les 2 champs de la ligne selectionnée en les passant dans un commandargument si c'est possible ?
Merci![]()
Tu peux procéder avec quelque chose de ce style :
Sinon, tu as la possibilité d'appeler une fonction comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <asp:LinkButton id="LBSelect" runat="server" CommandName="select" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ChampBD") + | + DataBinder.Eval(Container.DataItem, "ChampBD2"%>')>Select</asp:LinkButton>
Avec, dans ton .cs la fonction suivante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <asp:LinkButton id="LBSelect" runat="server" CommandName="select" CommandArgument='<%# ConcatenateArgs(DataBinder.Eval(Container.DataItem, "ChampBD1"), DataBinder.Eval(Container.DataItem, "ChampBD2")%>'>Select</asp:LinkButton>
Enfin, dernière méthode, tu le fais dans l'évènement rowDataBound de ta gridview
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public string ConcatenateArgs(string arg1, string arg2) { return arg1 + "|" + arg2 }
Attention, j'ai tapé le code ici. Il faudra donc peut être que tu l'adaptes et/ou le corrige.
Pour la 2 eme:
Desole, qu'est ce que je fais dans le rowdatabound ?Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1502: The best overloaded method match for profil.Liste.ConcatenateArgs(string, string)' has some invalid arguments
Source Error:
Line 105: <asp:TemplateField ShowHeader="False">
Line 106: <ItemTemplate>
Line 107: <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
Line 108: CommandName="Select" Text="Select"
Line 109: CommandArgument='<%# ConcatenateArgs(DataBinder.Eval(Container.DataItem,"idprofil"),DataBinder.Eval(Container.DataItem,"profil1"))%>'></asp:LinkButton>
Line: 107
Merci
Tu vas rien faire dans le rowdatabound event.En fait c'est plutôt dans l’événement OnRowCommand.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e) { if(e.CommandName=="select") { //ton traitement ici } }
Et qu'en est-il du message d'erreur ?
Essaie avec ceciPuis dans l'evenement OnRowCommand:
Code : Sélectionner tout - Visualiser dans une fenêtre à part CommandArgument='<%#Eval("idprofil") + ";" +Eval("profil1")%>'
A toi de l'adapter dans ton code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 string data= e.CommandArgument.ToString(); string[] arg=new string[2]; char[] splitter= {';'}; arg = info.Split(splitter); string id=arg[0]; string profil=arg[1];
A+
Pour la 1ere methode de calagan99, il fallait juste ajoutera""pour faire|, pour que ca marche."|"
Pour la 2eme methode, la fonction de concatenation accepte comme argument des string alors que les variables sont autre chose.
Pour la methode de Ramajb, elle ressemble à celle de la 1ere de calagan99, sauf qu'elle est plus simple et plus breve, et à la place de ";" , calagan99 a mit le "|", l'important c'est que le separateur soit mis entre guillemets.=>ca marche !
Merci à Ramajb et à Calagan99![]()
Partager