【问题标题】:asp.net calling button click event that i created我创建的asp.net调用按钮单击事件
【发布时间】:2012-03-10 22:59:39
【问题描述】:

我正在用 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 条件

谢谢

【问题讨论】:

  • 没有回发服务器怎么知道呢?但是,您可以在 Ajax 的帮助下以一种看起来无需回发的方式进行操作
  • 我只能给你看asp.net/ajax。你是必须经历它的人。
  • 删除Page_Load中的if(!IsPostBack)

标签: c# asp.net event-handling ispostback


【解决方案1】:

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

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

也请看这里:Asp.Net Page Life Cycle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 2013-05-14
    • 2011-11-08
    • 2016-11-19
    相关资源
    最近更新 更多