2012-05-14 43 views
3

我看到一些商業應用程序支持與jqGrid的MVC(asp.net)的例子,我試圖確定與Backbone.js客戶端mvc使用jQgrid的最佳方法。jqGrid使用骨幹與分頁

我們目前正在使用一個Backbone視圖,該視圖保存jqgrid的精細表,以及骨幹集合提供的較小表和「本地」數據類型。

爲了支持分頁& virtualscroll我希望骨幹模型/集合支持從服務器和任何搜索/過濾選項獲取數據,並將輸出傳遞到視圖和jqgrid以更新網格。

看起來jqGrid對像beforeRequest,loadBeforeSend這樣的事件有一些掛鉤,我可以掛鉤並進行集合調用以創建ajax請求並返回json並更新集合(使用Addy的Backbone Paginator集合),但它似乎jqgrid仍然會做ajax調用,這似乎是不正確的控制視圖而不是模型。

如果我使用自定義數據類型,當網格需要獲取更多數據並讓bb集合提供該函數並獲取數據時,我可以捕獲該條件。

自定義數據類型的最佳選擇是否有更好的方法鉤到骨幹模型/集合到jqgrid?

+0

我只是想,如果這意味着 - 你會在最後做一個Ajax調用並獲得結果。 BB會中斷jqgrid的ajax調用並自己做,然後當結果回來時,你需要將它們從BB發送到jqGrid。把你的代碼鉤在jQgrid的beforesend和onComplete上,填充你的BB而不是BB獲取結果並填充jqGrid。 –

+1

我建議你遠離jqGrid,這是一場災難。請檢查SlickGrid或DataTables。 – Roman

回答

0

在骨幹環境中,您需要將表直接綁定到集合,並使用適當的偵聽器來更新數據,否則您要麼依靠靜態視圖 - 這與您使用主幹的原因相反 - - 或者你將花費無數個小時鉤住回調來更新一個從來沒有意義的網格。

我在一個Backbone環境中做了兩次datatables.net,並且這兩次嘗試都是一團糟,因爲我基本上是蠻橫的 - 迫使數據表更新它自己的模型,這是過度的。同樣,試圖利用Datatable的服務器端選項幾乎不在窗口,因爲它與Ajax事務的Backbone系統衝突。

看看Backgrid,它是從底層構建而成的,可與Backbone一起使用。遠遠的,這是迄今爲止我發現的最簡單,最乾淨,開銷最低的選項。