2017-01-23 55 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() { 

});