3 votes

Le paramètre CommandArgument de la propriété ASP.Net LinkButton ignore <%= .. %>

Je essaie de faire ce que je pensais être une opération très simple pour définir une propriété sur un contrôle LinkButton ASP.Net mais pour une raison quelconque, ASP.Net ignore les balises et passe simplement la valeur en tant que chaîne.

Lorsque le lien est cliqué, je le gère avec:

   protected void btnDetails_Click(object sender, EventArgs e)
   {
       try
       {
           LinkButton btn = (LinkButton)sender;
           if (btn.CommandName == "ItemID")
           {
               string itemID = btn.CommandArgument.ToString();               
           }
       }
       catch (Exception excp)
       {
           lblError.ForeColor = System.Drawing.Color.Red;
           lblError.Text = excp.Message;
       }
   }

Le problème est que itemID finit par avoir une valeur de "<%= item.ItemID %>".

J'ai vu d'autres personnes rencontrer le même problème et essayer des choses comme ci-dessous mais rien n'a fonctionné pour moi jusqu'à présent.

 />

2voto

Jason Jong Points 2811

Essayez ceci

Notez le ' unique dans CommandArgument

1voto

Onkelborg Points 2554

Cela devrait fonctionner :

Avez-vous appelé .DataBind()? Consultez ce kb

0voto

Mayur Borad Points 928

Vous pouvez vérifier ici Références

<%: item.ItemID %>

Ajouté avec ASP.NET 4.0:

<%: %> est utilisé pour afficher une chaîne encodée en HTML (utilisé de la même manière que <%= %>). Il encode automatiquement en HTML son entrée, sauf si l'entrée est un IHtmlString (c'est-à-dire quelque chose qui indique qu'il sait comment créer du HTML valide). L'intention est que cela remplacerait presque complètement <%= %> (voir http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx)

Cela peut vous aider, faites-moi savoir si vous avez besoin d'une aide supplémentaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X