2017-01-23 35 views
0

我有两个组合框和一个网页上的网格视图,更改组合框中的值会更改gridview中显示的数据。JQuery筛选更新面板中的gridview行

我也有被用于使用下面的脚本过滤GridView中数据的文本框:

$(document).ready(function() { 
    (function ($) { 
     $('#filter').keyup(function() { 
      var rex = new RegExp($(this).val(), 'i'); 
      $('.searchable tr').hide(); 
      $('.searchable tr').filter(function() { 
       return rex.test($(this).text()); 
      }).show(); 
     }) 
    } (jQuery)); 
}); 

这一切工作正常,只是当用户在组合框中回发发生改变的值为了刷新表格数据和屏幕刷新刷新,这是不可取的

我已经将控件包装在更新面板中,并包含一个scriptmanager。

<asp:ScriptManager ID="SM_Items" runat="server"> 
</asp:ScriptManager> 

<asp:UpdatePanel ID="UP_Items" runat="server"> 
    <ContentTemplate> 

     //Controls in here 

    </ContentTemplate> 
</asp:UpdatePanel> 

这已经停止页面闪烁,并且仍然被填充的表,但过滤文本框是更新面板内不再起作用。

我试过在更新面板中移动脚本,但这没有什么区别。

任何帮助是极大的赞赏

回答

0

我相信这是因为你的过滤器事件登记到过滤文本之前,已与更新面板被异步加载。使用.keyup直接注册到#filter是一次性事件。如果文本框被删除或再次添加它不会附加到它的事件处理程序。

$('body').on('keyup', '#filter', function() { 

});