如果我自己创建自定义控件,我必须确保在OnInit中添加所有控件,否则回发将无效。在Init()和Load()之间调用ProcessPostData,所以如果我在Load()中添加我的控件,那么在我的控件进入页面之前就已经完成了后期数据步骤。
但是,如果我在ASP.NET转发器中放置一个按钮并且只将数据绑定到Page_Load()中的转发器,则转发器会触发ItemCommand事件,即使在Init期间控件不在页面上也是如此。这是如何运作的?如何创建自己的自定义控件,在Load()或PreRender()?
中向控件添加按钮我想要这样的事情:
public class WrappedButton : WebControl
{
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
var button = new Button { Text = "Hello" };
button.Click += SomeCommand;
Controls.Add(button);
}
private void SomeCommand(object sender, EventArgs e)
{
Page.Response.Write("This won't get executed");
}
}