How to Return DataTable from WebMethod using JSON and JQuery in asp.net? How to Return DataTable from WebMethod using JSON and JQuery in asp.net? json json

How to Return DataTable from WebMethod using JSON and JQuery in asp.net?


Here is how I normally do it. I load the DataTable contents into a dictionary, serialize it and everything works. You can modify the code to suit your needs.

[WebMethod]public string GetQueryInfo(){    String daresult = null;    DataTable yourDatable = new DataTable();    DataSet ds = new DataSet();    ds.Tables.Add(yourDataTable);    daresult = DataSetToJSON(ds);    return daresult;}public string DataSetToJSON(DataSet ds){    Dictionary < string, object > dict = new Dictionary<string, object>();    foreach(DataTable dt in ds.Tables) {        object[] arr = new object[dt.Rows.Count + 1];        for (int i = 0; i <= dt.Rows.Count - 1; i++) {            arr[i] = dt.Rows[i].ItemArray;        }        dict.Add(dt.TableName, arr);    }    JavaScriptSerializer json = new JavaScriptSerializer();    return json.Serialize(dict);}

On your aspx.

$.ajax({    type: "POST",    url: 'Webservices/GetQueryInfo',    data: {},    contentType: "application/json; charset=utf-8",    dataType: 'json',    success: function (data) {        var objdata = $.parseJSON(data.d);        // now iterate through this object's contents and load your gridview    }});

There are many tutorials on how to load a grid view using JavaScript or jquery. This will at least give you a starting point. You can find a nice example here.To do CRUD operations with the GridView see link here