使用asp:Button将参数传递给函数

Yan*_*der 8 forms asp.net aspbutton

我想传递一个参数成函数onClick的asp:Button

    <asp:Button name='ProductID' onclick="confirm_product_Click" ID="confirmitem" runat="server" Text="accept">
Run Code Online (Sandbox Code Playgroud)

参数是<%=product.ProductId %>.

我无法使用,CommandArguments因为该值像纯文本一样传递.

我尝试了隐藏的输入,但它失败了.

我也尝试过使用表单操作:

<form method="post" action="?ProductID=<%=product.ProductId %>"> 
<asp:Button name='ProductID' onclick="confirm_product_Click" ID="confirmitem" runat="server" Text="accept">
</form>
Run Code Online (Sandbox Code Playgroud)

但它不会将值发送给函数.有人可以帮我解决这个问题吗?

小智 17

在你的aspx中

<asp:Button ID="test" runat="server" CommandArgument='<%#Eval("product.ProductId")%>' CommandName="ThisBtnClick" OnClick="MyBtnHandler" />
Run Code Online (Sandbox Code Playgroud)

在代码背后

void MyBtnHandler(Object sender, EventArgs e)
{
   Button btn = (Button)sender;
   switch (btn.CommandName)
   {
      case "ThisBtnClick":
         DoWhatever(btn.CommandArgument.ToString());
         break;
      case "ThatBtnClick":
         DoSomethingElse(btn.CommandArgument.ToString());
         break;
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 感谢您抽出时间。但它仍然不起作用,CommandArgument 为空:“”。 (2认同)