使用jQuery触发单击以命中代码隐藏功能在1.4中不起作用-在1.3.2中效果良好

使用jQuery触发单击以命中代码隐藏功能在1.4中不起作用-在1.3.2中效果良好,jquery,Jquery,我在更新面板中有一个gridview,正在使用jQuery对话框添加条目 该对话框调用一个AJAX/JSON函数来添加条目。在该函数成功后,我让jQuery触发一个按钮并单击一个隐藏的按钮 ... success: function(msg) { $("[id$='_btnUpdateGrid']").trigger('click'); $("#new_dialog").dialog('close');

我在更新面板中有一个gridview,正在使用jQuery对话框添加条目

该对话框调用一个AJAX/JSON函数来添加条目。在该函数成功后,我让jQuery触发一个按钮并单击一个隐藏的按钮

   ... 
       success: function(msg) {
             $("[id$='_btnUpdateGrid']").trigger('click');
             $("#new_dialog").dialog('close');
         },
   ...
它应该命中代码隐藏中的事件处理程序来更新数据源和刷新gridview

<asp:Button ID="btnUpdateGrid" runat="server"  OnClick="btnUpdateGrid_Click" 
Text=" " Width="1px" Height="1px" Style="background-color:#F5F3E5; border:none;"  />

这在1.3.2中运行良好。更新至1.4.1,不再触及代码隐藏。AJAX仍然可以工作,但我必须手动刷新页面以更新网格

此外,我还可以点击客户端事件处理程序(例如OnClientClick=“alert('hello')”),因此我知道点击仍在发生,而不是事件处理程序背后的代码。这就好像jquery正在以某种方式阻止页面现在这样做。我通过在脚本引用路径中更改版本号并看到功能更改来验证这一点


这是一个错误还是我现在应该用另一种方式来做

您可以尝试将ID更改为ID,反之亦然。这可能是一个区分大小写的标识符问题

也许可以尝试使用JavaScript将事件处理程序绑定到按钮,而不是使用HTML中的onClick属性。jQuery允许您使用实时事件绑定来实现这一点:

$("[id$='_btnUpdateGrid']").live("click", btnUpdateGrid_Click); $(“[id$=”\u btnUpdateGrid']”)。实时(“单击”,btnUpdateGrid\u单击);
我不确定这是否能解决问题,但值得一试。

结果表明,这只是命令。不知道为什么1.3不介意下订单,但就这么多了

 ... 
   success: function(msg) {
         $("#new_dialog").dialog('close');
         $("[id$='_btnUpdateGrid']").trigger('click');
     },
 ...

工作正常。

感谢您的输入,但我对此表示怀疑-我也尝试过使用类选择器,如$(“.btnUpdateGrid”)。触发器('click');它在1.4版中仍然不起作用UpdatePanel刷新后是否重新绑定按钮?UpdatePanel是阴险的,会解开你的事件。Jason-我知道你在说什么,但在这种情况下,我认为没有必要。我不必为1.3.2而担心。