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(""); }
等等。