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() を呼び出しましたか? このKBを参照してください

于 2010-10-19T23:50:33.503 に答える