【问题标题】:Dynamically added ASP.NET button click handler being ignored动态添加的 ASP.NET 按钮单击处理程序被忽略
【发布时间】:2012-06-28 13:31:48
【问题描述】:

我正在向这样的按钮添加事件处理程序:

btn.Click += new EventHandler(btn_Click);

但是btn_Click 函数没有被调用(从不命中其中的断点)并且按钮只是重新加载页面。以我过去的经验,asp按钮通常会在重新加载页面之前执行点击代码,那么当动态添加事件时,我该如何实现呢?

我也设置了CausesValidation = false,虽然页面上没有验证,所以我认为这不会有影响。

【问题讨论】:

  • 哪个事件你有那个代码?
  • 您必须在 Page.Load 中而不是在 page.IsPostback 中添加此代码?这是你犯的错误吗?
  • 好的,我想我明白了。我在另一个按钮单击期间添加它,但我需要在页面加载期间添加它而不是它才能工作......我理解正确吗?

标签: c# asp.net events


【解决方案1】:

无论页面是否被回发,都需要为每个请求绑定事件处理程序。事件处理程序的绑定在每个页面请求开始时丢失。按钮的事件处理程序通常绑定在 Page_Load 中。

【讨论】:

  • 这两个答案都有助于我理解,虽然我只能接受一个。不管怎样,谢谢!
【解决方案2】:

您必须在Load 事件(或之前)上设置事件处理程序。如果您在Load 之后执行此操作,它将不会被执行,因为在评估事件处理程序时它不会存在。

查看thismsdn 文章中有关页面生命周期的内容。我想它会帮助你理解。看到事件处理发生在Load之后inmediatly

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    相关资源
    最近更新 更多