下面的代码显示了我的Page_load函数,其中我创建了数量可变的HtmlButton。
protected void Page_Load(object sender, EventArgs e)
{
...
foreach () {
...
HtmlButton myHtmlButton = new HtmlButton();
HtmlButton.Attributes["class"] = "test";
updatePanel1.ContentTemplateContainer.Controls.Add(myHtmlButton);
}
...
}现在,当我按下一个按钮时,将执行以下函数,并且我希望将updatePanel1中所有测试的类名更改为“HtmlButtons -2”。
public void ChangeClass(object sender, EventArgs e)
{
}我使用Page.Controls在foreach中进行了测试,并检查何时获得了HtmlButton,但从未得到过。
谢谢你。
发布于 2018-12-04 19:22:08
最简单的方法是将sender转换回一个按钮并更改属性。
for (int i = 0; i < 5; i++)
{
HtmlButton myHtmlButton = new HtmlButton();
myHtmlButton.Attributes["class"] = "test";
myHtmlButton.InnerText = "Button " + i;
//bind the method to the html button
myHtmlButton.ServerClick += ChangeClass;
PlaceHolder1.Controls.Add(myHtmlButton);
}然后是ChangeClass方法
private void ChangeClass(object sender, EventArgs e)
{
HtmlButton myHtmlButton = sender as HtmlButton;
if (myHtmlButton.Attributes["class"] == "test")
{
myHtmlButton.Attributes["class"] = "test1";
}
else
{
myHtmlButton.Attributes["class"] = "test";
}
}https://stackoverflow.com/questions/53609604
复制相似问题