asp.netformsaspbutton

pass parameter into a function with asp:Button


I'm trying to pass a parameter into a function onClick of an asp:Button

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

the parameter is <%=product.ProductId %>.

I cant use CommandArguments because the value is passed like plain text.

I tried with hidden input but it failed.

I also tried using form action:

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

but it doesn't send the value to the function. Can someone help me solve this problem?


Solution

  • in your aspx

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

    in code behind

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