我创建的asp.net调用按钮点击事件



我正在asp.net中编写一个web应用程序。我有一个aspx页面,它调用了一个类(Test),该类生成一个按钮并返回按钮。类构造函数获取按钮单击事件应该激活的函数(userClickOnButton)和插入到按钮。click+=EventHandler("函数的名称(userClickOnButton)");

问题是,在aspx代码后面,我使用IsPostBack(无法取消,需要此条件),当我单击按钮时,程序不会转到我为该按钮创建的事件,但当我取消IsPostBack条件时,程序会转到我创建的事件(函数userClickOnButton)。

我的代码是:背后的aspx代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Test test = new Test(userClickOnButton);
        Button button = test.AddButton();
        cell.Controls.Add(button);
    }
}
private void userClickOnButton(object sender, EventArgs e)
{
    this.ModalPopupExtenderSelectFilds.Show();
}

我的班级

public class Test
{
Action<object, EventArgs> m_ButtonClickActivateFunction;
public Test(Action<object, EventArgs> func) 
{
    m_ButtonClickActivateFunction = func;
}
public Button AddButton()
{
    Button button = new Button();
    button.Text = "select";
    button.ID = "buttonID";
    button.Click += new EventHandler(m_ButtonClickActivateFunction);
    return button;
}

需要帮助在不取出IsPostBack条件的情况下激活事件

感谢

我认为asp.net无法处理对已不存在的按钮的点击。由于回发时不会重新创建按钮,因此该按钮不再存在于页面的控件集合中,因此不会处理该事件。

事件的处理发生在Page_Load之后,因此Page_Load应该重新创建该按钮。

也可以看看这里:Asp.Net页面生命周期

相关内容

  • 没有找到相关文章

最新更新