Ali*_*sam 5 c# asp.net arguments button event-handling
这个问题已被多次询问,但解决方案由于某种原因无法正常工作.
我正在动态创建一个Button并为其分配一个EventHandler.
protected void Page_Load (object sender, EventArgs e)
{
Button b = new Button();
b.Click += new EventHandler(Method);
}
protected void Method (object sender, EventArgs e)
{
//Do work here
}
Run Code Online (Sandbox Code Playgroud)
我需要传递一个参数,所以我想到的最简单的方法是:
b.Click += new EventHandler(Method(sender, e, "name"));
protected void Method (object sender, EventArgs e, String name)
{
//Do work here
}
Run Code Online (Sandbox Code Playgroud)
错误:预期的方法名称
所以在检查了这里的问题后,我几乎在每个问题中都找到了相同的解决方案.
b.Click += new EventHandler((sender, e) => Method(sender, e, "name"));
Run Code Online (Sandbox Code Playgroud)
错误:无法在此范围内声明名为"sender"的局部变量,因为它将赋予"sender"不同的含义,"sender"已在"父或当前"范围中用于表示其他内容.
所以我改为以下内容:
b.Click += new EventHandler((sender1, e1) => Method(sender1, e1, "name"));
Run Code Online (Sandbox Code Playgroud)
Visual Studio的错误消失了,但是在运行网页时,我收到了这个错误:
System.ArgumentOutOfRangeException:索引超出范围.必须是非负数且小于集合的大小.
这里有什么问题我真的输了.
| 归档时间: |
|
| 查看次数: |
4132 次 |
| 最近记录: |