0

如果我制作自己的自定义控件,我必须确保在 OnInit 中添加所有控件,否则回发将不起作用。ProcessPostData 在 Init() 和 Load() 之间调用,因此如果我在 Load() 中添加我的控件,则在我的控件出现在页面上之前已经完成了发布数据步骤。

但是,如果我在 ASP.NET 转发器中放置一个按钮,并且仅在 Page_Load() 中将数据绑定到转发器,转发器将触发 ItemCommand 事件,即使在初始化期间控件不在页面上也是如此。这是如何运作的?如何制作自己的自定义控件,将按钮添加到 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");
    }
}
4

0 回答 0