3

我正在尝试执行我认为非常简单的操作来在 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 %>" />
4

3 回答 3

2

尝试这个

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

注意 CommandArgument 中的单个 '

于 2010-10-20T03:01:48.083 回答
1

这应该有效:

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

您是否调用了 .DataBind()?看到这个知识库

于 2010-10-19T23:50:33.503 回答
0

你可以在这里查看参考

<%: item.ItemID %>

随 ASP.NET 4.0 添加:

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

这可能对你有帮助,让我知道以获得进一步的帮助。

于 2013-06-13T09:54:47.540 回答