English 中文(简体)
How to populate a paged Dojo.Grid with data from an ASP.Net web service?
原标题:

I m trying to populate a Dojo grid with data from an ASP.Net web service. There is going to be a lot of rows, so I want to implement paging on the server side, so the web service will accept parameters "start" and "count". I ve gotten pretty close, by using QueryReadStore and overriding the "fetch" function to add additional parameters (the web service requires more than just start and count).

The immediate problem I ve encountered is that the web service is returning the data as XML. I believe this is because the request does not contain a Content-Type header indicating a preference for json (which the grid wants). I am using an Http-Post rather than the default Get. Is a ResponseFormat attribute supposed to override this? It doesn t work for me.

So, how do I get the data as json? Or alternately, am I barking up the wrong tree? It would seem like a pretty common thing to glue together a grid and a web service. Does Dojo have any built-in functionality for this that I am just not aware of?

Thanks

问题回答

You should be able to simply set the handleAs parameter on your call to dojo.xhrPost(..) to "xml", this will bind the XML to javascript objects to make your life easier while handling the data:

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.
         */
    }
});

Alternatively, you could chose to send different HTTP Headers in your AJAX call by using the headers property of the argument object for dojo.xhrPost(..):

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.
         */
    }
});




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Transaction handling with TransactionScope

I am implementing Transaction using TransactionScope with the help this MSDN article http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx I just want to confirm that is ...

System.Web.Mvc.Controller Initialize

i have the following base controller... public class BaseController : Controller { protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (...

Microsoft.Contracts namespace

For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;?

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!

热门标签