2010-10-27 7 views
1

J'utilise 2 linkbuttons à l'intérieur des contrôles serveur DataItem séparé sur ma page web asp.netlinkbutton question oncommand

<asp:LinkButton ID="Item1" runat="server" CommandName="first" 
     OnCommand="Item1_Onclick" CommandArgument="<%# Container.DataItem %`>" 
     Text="<%# Container.DataItem %`>" >  
</asp:LinkButton`> 

et

<asp:LinkButton ID="Item2" runat="server" CommandName="second" 
     OnCommand="Item2_Onclick" CommandArgument="<%# Container.DataItem %`>" 
     Text="<%# Container.DataItem %`>" >  
</asp:LinkButton`> 

Quand j'extraire le nom de la commande à l'intérieur C# comme

e.CommandArgument.ToString().Trim();  

il me donne le bon nom mais la commande arugument

e.CommandArgument.ToString().Trim(); 

pour l'élément 2 n'est pas ce que j'attends. Ce n'est PAS celui de item1, mais celui que j'ai défini initialement comme datasource pour le contrôle datalist de item2. Il ne me donne pas la dernière valeur de chaîne de données que j'attends de link2 item2. Quel peut être le problème? Où ai-je tort?

En outre, l'événement pour item2 est déclenché seulement pour la première fois et non après? Y a-t-il une erreur stupide que je commets?

+0

Je suppose que le deuxième bouton de lien est collé au mauvais endroit :) – SWeko

+0

ils sont collés dans 2 contrôles séparés de la datalist dans les balises itemtemplate. item1 à l'intérieur de tag datalist1 et item2 à l'intérieur tag datalist2. Est-ce faux? – zack

Répondre

0

Dans l'argument de commande vous ne fournissez pas le nom de la propriété dans l'élément de données

"<%# Container.DataItem.ProeprtyName %`>" 

Supposons que votre source de données est un objet utilisateur et vous avez besoin du code d'utilisateur comme argument de commande, il doit être <%# Container.DataItem.UserID%> `

1

J'ai eu le problème. Je n'avais pas inclus le if (! IsPostBack) comme première déclaration dans ma méthode vide LoadLoad !! C'était stupide de ma part. Merci quand même pour tout votre temps et vos idées.