ASP.Net LinkButton CommandArgument свойство игнорирует <% = ..%> - PullRequest
3 голосов
/ 20 октября 2010

Я пытаюсь сделать то, что я думал, было очень простой операцией для установки свойства в элементе управления ASP.Net LinkButton, но по какой-то причине 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 %>" />

Ответы [ 3 ]

2 голосов
/ 20 октября 2010

Попробуйте это

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

Обратите внимание на одиночный 'в CommandArgument

1 голос
/ 20 октября 2010

Это должно работать:

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

Вы вызывали .DataBind ()? Посмотреть это КБ

0 голосов
/ 13 июня 2013

Вы можете проверить здесь Ссылки

<%: item.ItemID %>

Добавлено в ASP.NET 4.0:

<%:%> используется для вывода строки в кодировке HTML (используется так же, как <% =%>). Он автоматически HTML-кодирует свои входные данные, если входные данные не являются IHtmlString (т.е. что-то, что говорит, что он знает, как создать действительный HTML) Предполагается, что это заменит <% =%> (см. http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx)

Это может помочь вам, дайте мне знать, чтобы получить дополнительную помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...