J'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 juste à travers la valeur comme une chaîne.ASP.Net propriété LinkButton CommandArgument ignore <%= .. %>
<asp:LinkButton id="viewDetails" runat="server" Text="Details" OnClick="btnDetails_Click" CommandName="ItemID" CommandArgument="<%= item.ItemID %>" />
Lorsque le lien est cliqué je manipuler 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 itemID se retrouve avec 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 aucun n'a travaillé pour moi jusqu'à présent.
<asp:LinkButton id="viewDetails" runat="server" Text="Details" OnClick="btnDetails_Click" CommandName="ItemID" CommandArgument=<%= item.ItemID %> />
<asp:LinkButton id="viewDetails" runat="server" Text="Details" OnClick="btnDetails_Click" CommandName="ItemID" CommandArgument="<%# item.ItemID %>" />
Vous voudrez peut-être clarifier ce que "aucun n'a travaillé pour moi jusqu'à maintenant" signifie – Onkelborg
Aucun des exemples montrés dans la question n'a abouti au code out désiré du CommandArgument contenant la valeur de item.ItemID plutôt que la chaîne " <% = item.ItemID%> ". – sipwiz
Même le dernier exemple? Vous obtenez, littéralement, <% # item.ItemID%>? – Onkelborg