2013-12-22 43 views
0

我有一個ASP.NET的GridView和在代碼隱藏多個列表框作爲部門,類別,各系等列表框和GridView從數據庫(MSSQL)填充。Javascript或jQuery的過濾器的GridView

我需要一個JSjQuery的函數,它選擇的項目的價值,並通過該值篩選的GridView行。 例如,當從部門列表框中選擇一個部門時,它將只顯示該部門中的條目(隱藏其他部分)。

我知道,這不是沒有示例代碼的正確問題,但在這種情況下我真的需要一些提示。

感謝您的幫助。

回答

0

這可能會讓你開始。

jQuery的

$("#ListBoxID").change(function() { 
    $("#" + GridViewID).find('td').not(':contains("' + $(this).val() + '")').parents('tr').hide(); 
}); 

這並不是說,如果你的ListBox.SelectionMode設置爲Multiple$(this).val()將包含所選項目的數組,你必須處理爲好。

0

你有兩個選擇:

  1. 你可以利用jQuery Datatables(這需要現有<table>標記您的GridView生成和權力它與各種有用的選項)。然後你可以利用他們的API來添加你的過濾邏輯。這裏是一個例子: http://www.datatables.net/release-datatables/examples/plug-ins/range_filtering.html

  2. 另一種選擇是編寫自己的jQuery ajax調用,當點擊列表框項目時會觸發。然後,它會在你的代碼後面調用一個靜態Web方法(返回字符串)(並將選定的列表框選項作爲參數發送)。您的靜態Web方法將使用參數值重新查詢數據庫以過濾結果。然後,你會在你的代碼後面建立一個gridview,將數據綁定到查詢結果,將gridview轉換爲一個html字符串,並將其作爲初始jQuery Ajax調用的響應返回。在您的AJAX調用的success:回調中,您將獲取響應html字符串,並將其放置在容納您的Gridview的容器html元素的頁面上。更多關於這種方法:

  3. 如果這一切看似複雜,你可以使用普通的回發(沒有AJAX),通過創建您的列表框中選擇的指數變化的事件。那將使用過濾選項重新查詢數據庫並重新綁定現有數據庫 網格視圖。

希望這有助於

+0

嗨@samet,你有沒有找到任何答案有用嗎?你有沒有嘗試過這些 - 需要幫助? – Fil