asp的问题:按钮OnClick事件

Mat*_*att 3 c# asp.net onclick

这是我的按钮

<asp:Button ID="myButton" Text="Click Me" OnClick="doSomething(10)" runat="server" />
Run Code Online (Sandbox Code Playgroud)

这是服务器功能

public void doSomething(int num)
{
    int someOtherNum = 10 + num;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译代码时,我得到该行的错误"Method Name Expected":

<asp:Button ID="myButton" Text="Click Me" OnClick="doSomething(10)" runat="server" />
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我不允许从OnClick事件向服务器传递值吗?

Jos*_*lio 16

这里有两个问题.首先,onclick事件具有特定的签名.它是

MethodName(object sender, EventArgs e);
Run Code Online (Sandbox Code Playgroud)

其次,在标记中,您需要仅传递方法名称而不使用括号或参数.

<asp:Button ID="myButton" Text="Click Me" OnClick="doSomething" runat="server" />
Run Code Online (Sandbox Code Playgroud)

然后按如下方式更改您的代码隐藏:

public void doSomething(object sender, EventArgs e)
{
    ....
}
Run Code Online (Sandbox Code Playgroud)

参数的传递可以在客户端点击事件处理程序上完成,在本例中为OnClientClick,但不在服务器端处理程序上.