2012-01-18 131 views
0

當沒有要查看的記錄時,jqGrid沒有顯示「沒有記錄查看」消息。我在我的應用程序中非常廣泛地使用了jqGrid,可變行數選擇,分頁和過濾。最初加載表時,它們會正確顯示頁面數,並顯示「查看1-10個50」類型的行計數消息。如果過濾器被應用到表中,表中的數據會被正確更新(使用由PHP生成的JSON數據源),並且頁面和行計數消息會被正確更新。當沒有要查看的記錄時,jqGrid沒有顯示「沒有記錄查看」消息

應用過濾器時根本不會返回任何行 - 當發生這種情況時,頁計數和行計數消息保持設置爲先前的值。

我檢查我返回一個空的數據集的JSON,並從jqGrid的演示站點的JSON當沒有數據匹配:

{"page":0,"total":0,"records":"0"} 

我已經張貼在一個樣本http://www.analyticsseo.com/test。任何想法我做錯了什麼?

+0

該演示使用jqGrid 3.8(2010-09-21),jQuery 1.3.2(2009-02-19)和jQuery UI 1.7.3。此外,如果你準備演示,你應該使用非最小化版本的jqGrid - 包括'jquery.jqGrid.src.js'而不是'jquery.jqGrid.min.js'就足夠了。 – Oleg 2012-01-18 16:08:05

+0

@Oleg:Drupal 6最大化jQuery v1.3.2。我很害怕但真實。 – Clive 2012-01-18 16:10:58

+0

我的問題主要是關於jqGrid版本。 3.8版現在真的很老了。此外,您可以使用'jquery.jqGrid.src.js'而不是'jquery.jqGrid.min.js'。 – Oleg 2012-01-18 16:35:19

回答

1

我不建議你現在像3.8這樣的舊版本的jqGrid。你與服務器響應

{"page":0,"total":0,"records":"0"} 

主要問題可以固定如果服務器會產生

{"page":0,"total":0,"records":"0","rows":[]} 

代替。像許多其他錯誤的bug現在在jqGrid中修復。有許多新功能和性能改進。

順便說一下,您的服務器部分在響應中使用了錯誤的Content-Type標頭中的JSON數據。正確的Content-Typeapplication/json,但您的服務器使用當前text/html; charset=utf-8。你可以在Drupal 6中使用common.inc語句drupal_set_header('Content-Type: application/json');來解決這個問題。在這樣的變化之後,你將能夠使用更新版本的jQuery。

the answer中找到對the link的引用,其中描述瞭如何將jQuery升級到新版本。

+0

真棒 - 這是整理它。謝謝奧列格!我也更改了內容類型,只要我有機會對我們的json代進行必要的更改,就會升級到jqGrid 4.x。 – 2012-01-19 09:12:10

+0

@MarkB:不客氣! – Oleg 2012-01-19 09:16:00

相關問題