我将其作为我的dgrid构造函数,

var MyQuickGrid = declare([onDemandGrid,Keyboard,Selection,ColumnHider,ColumnResizer,ColumnReorder]);


和部分config_opts是

var config_opts = {
         loadingMessage: "   Loading data...",
     noDataMessage: "No results found."
        }






 lang.mixin(grid_opts,config_opts);
 window.grid = new MyQuickGrid(grid_opts,'node_of_intrest');


但是,当我使用JsonRESTStore从服务器请求数据,并且返回的json数据为空,即“ []”时,网格不显示“ noDataMessage”,我最初认为这是因为我正在返回的标头,因为我当时即使对于空结果集也返回200 OK,我将其更改为204 No Content,但似乎仍然没有任何作用。我希望能有一个变通方法,甚至是一种了解网格是否无法获得结果的方法,因为目前由于某些原因,这个本机功能对于我来说似乎太聪明了。

最佳答案

在IRC上被nbjoerg提及

确保您的JsonRest服务器在其查询响应中设置了正确的Content-Range标头(例如,在这种情况下,应为“ 0-0 / 0项”)。

有关Dojo如何期望JsonRest端点的行为的更多信息,请参见http://dojotoolkit.org/reference-guide/1.9/quickstart/rest.html

这是一个由JsonRest服务返回的标头的示例,对于该标头,noDataMessage可以正常显示:

Connection:Keep-Alive
Content-Length:2
Content-Range:items 0-0/0
Content-Type:application/json
Date:Thu, 19 Sep 2013 12:56:19 GMT
Keep-Alive:timeout=5, max=92
Server:Apache/2.2.12 (Win32) DAV/2 mod_ssl/2.2.12 OpenSSL/0.9.8k mod_autoindex_color PHP/5.3.0
X-Powered-By:PHP/5.3.0


和屏幕截图,很好的衡量:

07-24 20:53