动态创建的ImageButton [英] Dynamically create an ImageButton
本文介绍了动态创建的ImageButton的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图动态声明的ImageButton。
我宣布它并分配一个ID和形象,如下所示:
的ImageButton BTN =新的ImageButton();
btn.ImageUrl =IMG / Delete.png
btn.ID = OA1 [I] +_+ I;
btn.OnClick =的someMethod;
但是,当我尝试分配一个onclick处理程序,它会引发以下异常按钮:
System.Web.UI.WebControls.ImageButton.OnClick无法访问,由于保护级别
解决方案
看看这个回答,它是动态控制和事件相关的
由于乔恩评论说你不能一个字符串添加到该事件,在这种情况下,你需要添加一个事件的处理:
保护无效Page_Init(对象发件人,EventArgs的发送)
{
VAR I =新的ImageButton();
i.Click + =新ImageClickEventHandler(i_Click);
this.myPanel.Controls.Add(ⅰ);
} 无效i_Click(对象发件人,ImageClickEventArgs E)
{
// 做一点事
}
Alternativeley
保护无效Page_Init(对象发件人,EventArgs的发送)
{
VAR I =新的ImageButton();
i.Click + =(来源参数)=>
{
// 做一点事
};
this.myPanel.Controls.Add(ⅰ);
}
I’m trying to dynamically declare an ImageButton.
I declare it and assign an ID and Image to it as follows:
ImageButton btn = new ImageButton();
btn.ImageUrl = "img/Delete.png";
btn.ID = oa1[i] + "_" + i;
btn.OnClick = "someMethod";
But when I try to assign an OnClick handler for the button it throws the following exception:
System.Web.UI.WebControls.ImageButton.OnClick is inaccessible due to protection level
解决方案
Take a look at this answer, it is related with dynamic controls and events
As Jon commented you cannot add a string to the event, in this case you need to add a handler for the event:
protected void Page_Init(object sender, EventArgs e)
{
var i = new ImageButton();
i.Click += new ImageClickEventHandler(i_Click);
this.myPanel.Controls.Add(i);
}
void i_Click(object sender, ImageClickEventArgs e)
{
// do something
}
Alternativeley
protected void Page_Init(object sender, EventArgs e)
{
var i = new ImageButton();
i.Click += (source, args) =>
{
// do something
};
this.myPanel.Controls.Add(i);
}
这篇关于动态创建的ImageButton的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文