我正在尝试执行我认为在ASP.Net LinkButton控件上设置属性的非常简单的操作但由于某种原因,ASP.Net忽略了标记并且只是将值作为字符串传递。< / p>
<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最终的值为“&lt;%= item.ItemID%&gt;”。
我见过其他人遇到同样的问题,并尝试下面的内容,但到目前为止,没有一个对我有用。
<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 %>" />
答案 0 :(得分:2)
试试这个
<asp:LinkButton id="viewDetails" runat="server" Text="Details" OnClick="btnDetails_Click" CommandName="ItemID" CommandArgument='<%= item.ItemID %>' />
注意CommandArgument中的单个'
答案 1 :(得分:1)
这应该有效:
<asp:LinkButton id="viewDetails" runat="server" Text="Details" OnClick="btnDetails_Click" CommandName="ItemID" CommandArgument="<%# item.ItemID %>" />
你打电话给.DataBind()吗?见kb
答案 2 :(得分:0)
您可以在此处查看Refrences
<%: item.ItemID %>
添加了ASP.NET 4.0:
&lt;%:%&gt;用于输出HTML编码的字符串(以与&lt;%=%&gt;相同的方式使用)。除非输入是IHtmlString(即表示它知道如何创建有效的HTML),它会自动对其输入进行HTML编码。目的是这将取代&lt;%=%&gt; (见http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx)
这可能会对你有所帮助,请告诉我以获得进一步的帮助。