![](/img/trans.png)
[英]Sorting, Filtering, and Paging in an ASP.NET MVC Application (Model)
[英]Sorting, Filtering and Paging in ASP.NET MVC
實現這些功能的最佳方法是什么?項目的哪一部分會涉及?
我看到了一些JavaScript網格示例,但是我在談論的是最適合MVC架構的通用方法。
我已經考慮過配置路由和模型以實現這些功能,但是我不知道這是否是實現這些功能的正確方法。 一方面,我認為如果將邏輯放在路線(項目/頁面/排序/)中,我們將獲得諸如添加書簽和避免使用JavaScript的好處。 另一方面,如果我們使用JavaScript網格,則可以在ASP.NET Web表單中具有類似於舊式網格視圖的行為。
我發現使用HTML幫助程序可能對分頁很有用,但是不知道它們是否適合排序。 我看過jQuery, tableSorter和快速搜索插件,但它們僅適用於當前獲取的數據,不會幫助進行可能需要接觸數據庫的實際排序和過濾。 對於將這些工具與AJAX並用,我有一些想法,但是我不知道是否在任何地方都做了類似的工作。
我研究過的另一種方法是在Web表單上使用動態數據,但是我沒有發現關於將MVC和DD集成是否是一個好主意的建議。 我知道為單個案例實現過濾和排序很簡單(盡管它有一些問題,例如使用Dynamic LINQ,這還不是一種標准方法),但是我創建一個在所有情況下都可以使用的排序或過濾工具尋找。 (也許這是因為當Web表單開發人員想知道為什么每次我想為不同的實體實現排序方案時,為什么要編寫相同的代碼時,我都希望掌握一些東西)。
這是我基於jqGrid的解決方案: http ://sprokhorenko.blogspot.com/2010/01/jqgrid-mvc-new-version-sources.html
它是S#arp Architecture和NHibernate特有的,所以我不確定它是否適合您的需求。 但是它是模塊化的,因此例如可以很容易地調整基礎存儲庫的實現。
基本上,它只是具有所有優點和缺點的jqGrid,但已集成到MVC中:
您所需要做的就是為ViewModel提供屬性,並覆蓋幾個模板CRUD方法(可以與InternalConstructEntity()一樣少。
您可以查看MVContrib,它們具有很好的網格支持。 http://www.codeplex.com/MVCContrib
對於LOB應用程序,Telerik控件可能是一個很好的解決方案。
我個人使用jQuery DataTables 。 它非常簡單,並且具有定義明確的服務器端請求。 我已經用C#和MVC為jQuery DataTables編寫了一個插件 。 它使用標准的jQuery DataTables請求並相應地處理IQeryable實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.