【问题标题】:OnClick events not working in ASP.NET pageOnClick 事件在 ASP.NET 页面中不起作用
【发布时间】:2015-01-18 05:42:03
【问题描述】:

我有一个继承自母版页的 aspx 页面。 在母版页中,我有一个按钮,该按钮对解决方案中的每个页面都是通用的。

<div class="btn_general_mid">
<asp:Button 
    ID="btnMainSearch" 
    ValidationGroup="MainSearch" 
    OnClientClick="CheckSearchTextBox()"
    CausesValidation="true" 
    runat="server" 
    OnClick="btnMainSearch_Click"  
    CssClass="search_btn_submit"
    Text="Search" />
</div>

这里的CheckSearchTextBox() 是一个javascript 函数,btnMainSearch_Click 是处理按钮后面部分代码的事件。

在某个页面中,此按钮单击事件btnMainSearch_Click 不会被触发。 (调试器在代码中没有达到)

在运行时,(使用 Firebug 检查时)这是为按钮生成的代码段。

<div class="btn_general_mid">
<input id="ctl00_btnMainSearch" 
class="search_btn_submit" 
type="submit"    
onclick="CheckSearchTextBox();WebForm_DoPostBackWithOptions(new  WebForm_PostBackOptions("ctl00$btnMainSearch", "", true, "MainSearch", "", false, false))" 
value="Search" 
name="ctl00$btnMainSearch"></div>

实际上在该按钮工作正常的其他页面中,为该按钮生成了相同的 html 输出。我在这里遗漏了什么吗?

【问题讨论】:

  • 您的 Javascript CheckSearchTextBox() 函数是否会导致错误?这将阻止后续的 ASP.NET 回发。
  • 没有。实际上那部分工作正常.. :-(
  • 是否发出了回发 HTTP 请求?如果是,反应是什么?检查浏览器开发控制台。

标签: c# asp.net .net postback dopostback


【解决方案1】:

检查是否存在任何验证错误,因为它不允许服务器端事件btnMainSearch_Click 被触发。

【讨论】:

  • 对此我感激不尽。我一整天都被困在上面
【解决方案2】:

其中一个原因可能是回发被一些可见或明显不可见的验证器停止。尝试在按钮标签中添加原因验证为 false。

CausesValidation="false"

【讨论】:

  • 如果我想要在我的提交按钮单击时进行验证怎么办?
  • 我的问题是,我有一个模态表单并且按钮错过了 ValidationGroup(在后台验证表单时出现问题)。添加 CausesValidation="false" 有助于调试类似问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-23
相关资源
最近更新 更多