2013-01-08 107 views
0

我是Yii框架的新手。我正在分析自動生成的CRUD視圖。當我點擊列標題進行排序時,它會重新加載數據,因此比編寫排序表的jQuery方法慢得多。如何改變這種行爲。我不想在每次對錶格進行排序時重新加載數據,只想排序我現在所擁有的數據。CGridView更改排序方法

回答

0

如果我理解正確,您只想對當前頁面中的行進行排序,而不是對結果集中的所有行進行排序?我不確定我看到這個用法,除非它是一個相當小的結果集。大多數用戶會希望看到按列排序的整個結果集,而不僅僅是單個頁面。

沒有什麼內置CGridView做客戶端,我不認爲對的,但它不會是很難寫一個

$('table tr').each(function(){ 
    var me = $(this) 
    if (me.find('.columnToCompare').text() > me.find('.secondColumn').text()) 
    { 
     me.prev().insertBefore(me); 
    } 
} 

很快打完了,但你的要點有希望。

+0

是的,我明白了。你的意思是jQuery只會對錶格的當前頁面進行排序,並且它將是無用的?那沒問題。我誤解了分頁數據的排序行爲。是否有可能將當前數據集保存在內存中,以便在排序一段時間後立即獲取它? – Kiyas

+0

爲了能夠在客戶端完全排序,您必須檢索第一次加載時的所有**記錄。這可能比每次從服務器獲取更大的性能問題。 Yii沒有任何內容可以做到這一點,因爲它通常是效率最低的方式。如果您從服務器獲取性能問題,您應該調查並打開一個新問題。 – Paystey

+0

好的。感謝您的回答。 – Kiyas