asp的问题:按钮OnClick事件

这是我的按钮

 

这是服务器function

 public void doSomething(int num) { int someOtherNum = 10 + num; } 

当我尝试编译代码时,我得到该行的错误“方法名称预期”:

  

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

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

 MethodName(object sender, EventArgs e); 

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

  

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

 public void doSomething(object sender, EventArgs e) { .... } 

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

有更简单的解决方案。 您可以使用ASP按钮OnCommand事件。 更多关于这里: http : //msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.oncommand.aspx

按钮的OnClick是一个事件处理程序。 要将函数挂钩到eventHandler,您需要遵守由EventHandler定义的契约,如Jose所述。 OnClick绑定到void doSomething(object sender, EventArgs e)格式的函数。 所以你的function应该是相同的格式。

我不确定为什么要将参数传递给事件处理程序。 如果你想采取一些手动操作,你需要使用其他控件来做到这一点。

  

在守则中

 public void doSomething(object sender, EventArgs e) { int AnotherNumber= Int32.Parse(txtNumber.Text)+10; } 

您必须更改方法的结构

 public void doSomething(object sender, EventArgs e) { .... } 

并且为了传递参数,你需要解决这个问题:

例如,如果您在Html控件中,您可以在属性值中使用您的参数(例如此exapmle中的ID),然后在服务器端处理程序中检索它

即使控件改变样式颜色

Html:

  

代码:

 protected void ApplyStyleEvent(object sender, EventArgs e) { Profile["SelectedStyle"] = ((HtmlControl)sender).ID; Response.Redirect(""); } 

等等。