我试图将按钮添加到占位符,每个占位符都使用相同方法的事件处理程序。
if (!this.IsPostBack)
{
foreach (Entry ent in results)
{
HtmlButton btn = new HtmlButton();
btn.ServerClick += new EventHandler(resultSelected);
btn.InnerText = ent.name;
btn.ID = ent.ID.ToString();
PlaceHolder1.Controls.Add(btn);
}
}
1) 该按钮被添加到页面中,但是当它被单击时,不会调用方法(resultSelected),只会再次调用Page_Load。当它进入Page_Load时,PlaceHolder为空(该按钮不显示在页面上)。我如何完成我试图做的事情?
2)如何将CSS类分配给以这种方式创建的按钮?
答案 0 :(得分:2)
当您第一次开始使用ASP.NET时,这是一个非常常见的问题 - 在服务器端添加动态控件。
CreateChildControls()
方法中添加它们,该方法在Postback
方法之前在OnLoad
上触发。 OnPreRender
/ Render
方法中创建任何控件,则不会触发任何事件。 这是最简单的方法,在我的描述中跳过了一些细节。有关更多详细信息,请阅读ASP.NET应用程序生命周期。
至于问题的第二部分,您可以使用Style Property使用显式样式设置,也可以使用Attributes Property添加类属性,但是现在我猜测,因为我认为HtmlButton没有CssClass
属性。