Asp.net

使用 asp:Button 將參數傳遞給函式

  • July 15, 2021

我正在嘗試將參數傳遞onClickasp:Button

   <asp:Button name='ProductID' onclick="confirm_product_Click" ID="confirmitem" runat="server" Text="accept">

參數是<%=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>

但它不會將值發送到函式。有人可以幫我解決這個問題嗎?

在你的 aspx

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

在後面的程式碼中

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;
  }
}

如果它是一個連結按鈕…

<asp:LinkButton ID="test" runat="server" CommandArgument='<%#Eval("product.ProductId")%>' OnClick="MyBtnHandler" /> 

protected void MyBtnHandler(object sender, EventArgs e)
       {
        
string ProductID = ((LinkButton)sender).CommandArgument.ToString();
...
}

引用自:https://stackoverflow.com/questions/30461086