在Page_Load中添加带有css和事件处理程序的按钮



im试图将按钮添加到占位符,每个按钮都带有EventHandler到相同的方法。

        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)该按钮已添加到页面上,但是当单击其单击方法时,未调用该按钮,仅调用Page_load。当它输入page_负载时,占位符为空(页面上未显示该按钮)。我如何完成IVE尝试做的事情?

2)如何将CSS类分配给以这种方式创建的按钮?

首次开始使用ASP.NET时,这是非常普遍的问题 - 在服务器端添加动态控件。

  1. 第一件事是,您必须在每个页面请求上添加这些控件并在每个页面请求上分配EventHandler。要进行适当的事件处理和恢复ViewState,您必须为它们分配相同的ID并应用相同的层次结构。
  2. 需要在页面加载事件之前添加控件 - 最令人信服的是将它们添加到Overriden CreateChildControls()方法中,该方法在OnLoad方法之前在Postback上触发。
  3. 事件是在on载方法后发射的,因此,如果您将在例如OnPreRender/Render方法中创建任何控件 - 任何事件都不会触发。

这是最简单的方法,在我的描述中跳过了一些细节。有关更多详细信息,请阅读有关ASP.NET应用程序生命周期的信息。

至于问题的第二部分,您可以使用具有样式属性的显式样式设置,或者也应该使用属性属性添加类属性,但是现在我猜,因为我认为htmlbutton'''t具有CssClass属性。

相关内容

  • 没有找到相关文章

最新更新