繁体   English   中英

ASP.Net LinkBut​​ton CommandArgument属性忽略<%= ..%>

[英]ASP.Net LinkButton CommandArgument property ignores <%= .. %>

我正在尝试做我认为在ASP.Net LinkBut​​ton控件上设置属性的非常简单的操作但由于某种原因,ASP.Net忽略了标记并且只是将值作为字符串传递。

<asp:LinkButton id="viewDetails" runat="server" Text="Details" OnClick="btnDetails_Click" CommandName="ItemID" CommandArgument="<%= item.ItemID %>" />

点击链接时,我处理它:

   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;
       }
   }

问题是itemID最终得到的值是“<%= item.ItemID%>”。

我见过其他人遇到同样的问题并尝试下面的事情,但到目前为止没有一个对我有用。

<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 %>" />

试试这个

<asp:LinkButton id="viewDetails" runat="server" Text="Details" OnClick="btnDetails_Click" CommandName="ItemID" CommandArgument='<%= item.ItemID %>' />

注意CommandArgument中的单个'

这应该工作:

<asp:LinkButton id="viewDetails" runat="server" Text="Details" OnClick="btnDetails_Click" CommandName="ItemID" CommandArgument="<%# item.ItemID %>" />

你打电话给.DataBind()? 看到这个kb

你可以在这里检查Refrences

<%: item.ItemID %>

添加ASP.NET 4.0:

<%:%>用于输出HTML编码的字符串(以与<%=%>相同的方式使用)。 除非输入是IHtmlString(即表示它知道如何创建有效的HTML),它会自动对其输入进行HTML编码。 目的是这将取代<%=%>(参见http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx

它可能对你有帮助,请告诉我进一步的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM