簡體   English   中英

使用asp.net C#和jquery過濾數據集合

[英]Using asp.net C# and jquery to filter a collection of data

我正在開發一個網頁,用戶可以在其中過濾數據,然后將選擇內容導出為pdf或excel。 該網站正在使用ASP .NET C#。

為了篩選數據,我創建了一個網頁,該網頁包含一個帶有框和下拉菜單的左列,使用戶能夠輸入搜索條件,然后單擊搜索按鈕。 這是許多網站包含的典型搜索/過濾器功能。 過濾數據后,將使用asp列表視圖顯示選擇。 此列表視圖生成一個表。 我已經實現了Dragtable ,使用戶可以更改此表中列的順序,還可以實現columnManager,使用戶可以選擇要顯示的列。

所以我的問題是,使用asp .net C#在后台解析了過濾器/搜索功能,而使用jQuery在客戶端進行了列的選擇和重新排列。 現在,當用戶單擊“導出”按鈕時,除了由jQuery完成的篩選器之外,我還希望收集由asp控件完成的篩選器,並創建文件。 該文件應僅包含使用columnManager選擇的列,並以使用dragtable進行更改后的順序相同。

同時使用服務器端過濾器和客戶端過濾器的最佳實踐是什么? 我還考慮過刪除所有服務器端過濾,而僅使用ajax.post()將所有JSON格式的過濾器發送到服務器。 我還希望使用戶能夠再次保存其當前過濾器。

更新資料

我決定刪除服務器端,並使用ajax(更精確地說是getJSON)來獲取搜索結果。 這樣,我就不會松散使用jQuery / js完成的列的排序和排序,而我會回發一次(當然可以使用Cookies的東西)。 我還將所有邏輯都放在一個地方,並且JSON對象可以很容易地在服務器端進行包裝/展開。 不過,謝謝您的回答!

客戶端和服務器端在同一位置工作並不壞。 世界上所有運行良好的應用程序都將這些組合在一起。

但是,我們需要了解這種方法。

如果您不希望有任何回發,我建議您使用Jquery。

如果您可以往返,請繼續使用Server Side和Ajax。

您的方法還有另一個問題:如果用戶先訂購列而不是對其進行過濾,會發生什么? 列的順序被重置。

但是,通過可拖動的jQuery ui,您可以觸發ajax調用,以將有關更改通知服務器端代碼。 您可以將函數綁定到停止事件: http : //api.jqueryui.com/draggable/#event-stop

因此,我將執行以下操作:

  • 當用戶更改列的順序但不刷新數據時觸發ajax調用
  • 用戶添加過濾器並刷新數據時觸發ajax調用

服務器端代碼始終是最新的,並根據需要呈現正確的輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM