如何使用ASP.Net Web服务中的数据填充分页的Dojo.Grid?

时间:2009-11-14 00:28:19

标签: asp.net web-services dojo

我正在尝试使用来自ASP.Net Web服务的数据填充Dojo网格。会有很多行,所以我想在服务器端实现分页,因此Web服务将接受参数“start”和“count”。我已经非常接近了,通过使用QueryReadStore并重写“fetch”函数来添加其他参数(Web服务需要的不仅仅是启动和计数)。

我遇到的直接问题是Web服务将数据作为XML返回。我相信这是因为请求不包含指示json(网格需要)的首选项的Content-Type标头。我使用的是Http-Post而不是默认的Get。是否应该覆盖ResponseFormat属性?它对我不起作用。

那么,我如何将数据作为json获取?或者,我是在吠叫错误的树吗?将网格和Web服务粘合在一起似乎是很常见的事情。 Dojo是否有任何我不知道的内置功能?

由于

1 个答案:

答案 0 :(得分:1)

您应该可以在调用handleAsdojo.xhrPost(..)时简单地设置"xml"参数,这会将XML绑定到javascript对象,以便在处理数据时让您的生活更轻松:

dojo.xhrPost({
    url: "http://whatever.com/someendpoint",
    handleAs: "xml",
    load: function(response, ioArgs){
        /*
         * Do something with response, it's a JS object that reflects the XML.
         */
    }
});

或者,您可以选择使用headers的参数对象的dojo.xhrPost(..)属性在AJAX调用中发送不同的HTTP标头:

dojo.xhrPost({
    url: "http://whatever.com/someendpoint",
    handleAs: "json",
    headers: {
        "Accept" : "text/javascript, text/json, application/json, application/javascript"
    },
    load: function(response, ioArgs){
        /*
         * Do something with response, it's a JS object that reflects the JSON.
         */
    }
});