0

我正在用 asp.net 编写一个网络应用程序。我有一个调用生成按钮并返回按钮的类(测试)的 aspx 页面。类构造函数获取按钮点击事件应该激活的函数(userClickOnButton)并插入到button.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 条件

谢谢

4

1 回答 1

1

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

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

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

于 2012-02-20T15:49:52.217 回答