Bonjour tout le monde,
Je veux passer deux variables dans commandargument d'un linkbutton en asp.net
Merci:ccool:
Version imprimable
Bonjour tout le monde,
Je veux passer deux variables dans commandargument d'un linkbutton en asp.net
Merci:ccool:
c'est avecCode: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 :ccool:
Tu peux procéder avec quelque chose de ce style :
Sinon, tu as la possibilité d'appeler une fonction comme ceci :Code:
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:
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 gridviewCode:
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 ?Citation:
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
Et qu'en est-il du message d'erreur ?
Essaie avec ceciPuis dans l'evenement OnRowCommand:Code:CommandArgument='<%#Eval("idprofil") + ";" +Eval("profil1")%>'
A toi de l'adapter dans ton code.Code:
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 ajouteraCitation:
""
pour faireCitation:
|
, pour que ca marche.Citation:
"|"
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 :ccool: