我正在动态创建一个页面上的按钮。现在我想使用该按钮的点击事件。
在C# ASP.NET中如何实现?
Button button = new Button();
button.Click += (s,e) => { your code; };
//button.Click += new EventHandler(button_Click);
container.Controls.Add(button);
//protected void button_Click (object sender, EventArgs e) { }
对于新手来说更简单的方法:
Button button = new Button();
button.Click += new EventHandler(button_Click);
protected void button_Click (object sender, EventArgs e)
{
Button button = sender as Button;
// identify which button was clicked and perform necessary actions
}
button.Click += new EventHandler(button_Click("Test"));
? - user736893button.Click += (se, ev) => button_Click(se, ev, qo);
- user736893创建按钮时,只需将事件处理程序添加到按钮上即可。
button.Click += new EventHandler(this.button_Click);
void button_Click(object sender, System.EventArgs e)
{
//your stuff...
}
做起来要容易得多:
Button button = new Button();
button.Click += delegate
{
// Your code
};
Button button = new Button();
button.Click += new EventHandler(button_Click);
protected void button_Click (object sender, EventArgs e)
{
Button button = sender as Button;
// identify which button was clicked and perform necessary actions
}
protected void Button_Click(object sender, EventArgs e)
{
if (Convert.ToString(ViewState["Generated"]) != "true")
{
CreateDynamicElements();
}
}
在回发(postback)时,例如在页面加载时,您应该这样做:
protected void Page_Load(object sender, EventArgs e)
{
if (Convert.ToString(ViewState["Generated"]) == "true") {
CreateDynamicElements();
}
}
public void CreateDynamicElements(){
Button button = new Button();
button.Click += new EventHandler(button_Click);
}
public form1()
{
foreach (Panel pl in Container.Components)
{
pl.Click += Panel_Click;
}
}
private void Panel_Click(object sender, EventArgs e)
{
// Process the panel clicks here
int index = Panels.FindIndex(a => a == sender);
...
}
{这是带有2个参数声明的匿名方法}
。 - abatishchev