2010-09-16 656 views
16

看起來,jqGrid sortnamesortorder屬性實際上並不會導致您的數據集被排序 - 它們只會導致顯示向上/向下箭頭。jqGrid默認排序順序?

如何讓您的數據集在下載時排序?

當您單擊列標題但是我希望將默認排序應用於我們的數據時,排序很有效。


更新:當我們點擊下一個按鈕時,下一個請求會對數據進行排序。

這會導致一個稍有混淆的用戶界面,其中數據在列上按向下箭頭加載 - 並且數據未排序 - 但是當您單擊下一步時,數據現在已排序。

看來,如果我省略了sortname和sortorder,jqGrid仍然顯示排序圖標 - 很奇怪。

回答

2

嘗試使用

$("#list").jqGrid('setGridParam',{ page: 1 }).trigger("reloadGrid"); 

$("#list").jqGrid('setGridParam',{ rowNum: 10 }).trigger("reloadGrid"); 

(替換10,在其定義爲的rowNum參數值)。如果它沒有幫助,那麼在你的問題中發佈你的代碼。

+0

您是否建議我們加載兩次網格?初始負載(未排序)和希望排序的第二個負載? – 2010-09-16 20:57:41

+0

@Marcus:你不會在你的問題中插入任何代碼,所以我必須猜測你做了什麼。它從服務器加載JSON或XML數據,服務器對數據進行排序,因此您應該修復服務器代碼。如果您從本地源加載數據或從服務器加載數據爲** unsorted **,並且使用「loadonce:true」,則應該對數據進行一次**排序**。爲此,您必須刷新網格當前頁面中顯示的數據。你可以在'trigger(「reloadGrid」)'方面做到這一點 - 在本地數據的情況下,它只是「刷新」當前頁面。有時像'page'或'rowNum'這樣的參數可以幫助 – Oleg 2010-09-17 11:15:12

+0

我們使用'loadonce:true'從服務器加載未分類的數據。將嘗試'觸發...' – 2010-09-17 14:14:48

1

問題是(我相信)請求第一數據集

2

你可能也犯了同樣的錯誤,因爲我自己,這是立足我的客戶端腳本從古老的當參數sortName也不SIDX讀例子用來代替「sortname」「sortName」

+0

這是正確的答案。第一次請求數據時,我的網格正在傳遞排序條件。屬性是sortname和sortorder。 – jfren484 2013-10-18 16:12:59

0

/不好回答警報

爲什麼不能隱藏圖標排序第一次加載?第一次有人排序,取消隱藏,事情按預期工作。聽起來好像是你的意圖,加載未分類,直到用戶選擇一個列進行排序。

+0

我有點贊同這個解決方案......第一次使用服務器端代碼進行排序,所以它在加載時準確顯示,如果你想最初排序。設置默認搜索列或隱藏/顯示(http://stackoverflow.com/questions/2601476/is-it-possible-to-hide-or-manipulate-the-jqgrid-sort-icons)排序列後用戶決定根據你去哪個方向進行排序。 – 2011-02-19 08:35:20

13

您可能會給兩次相同的參數(複製粘貼編程時非常常見的錯誤:)沒有攻擊。我做到這一點。)

假定你想通過OpeningDate降序排序

..... options .... 
sortname: "OpeningDate", 
sortorder: "desc", <---- assume you write this line and expect to sort descending 
..... some other options .... 
sortorder: "asc", <---- and this line may also be there but you may not be noticing it 
..... and other options .... 

第二個「排序順序」選項覆蓋第一和

7

我正面臨着你將無法降序排序一樣的問題。使用此裝載數據後:如果布爾值設置爲true

$("#tableId").jqGrid('sortGrid','colName', false, 'asc'); 

$("#tableId").sortGrid('colName', false, 'asc'); 

網格被重新加載。 最後一個參數可以是'asc'/'desc',具體取決於排序順序。