如何在asp.net中使用JSON和JQuery从WebMethod返回DataTable?
我是JSON
新手。 我创建了一个示例,它从WebMethod
返回String
并将返回的值赋给asp.net Label
控件。
示例JSON返回String:
$(document).ready(function() { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "JSONSample.aspx/DisplayData", data: "{}", dataType: "json", success: function(data) { //alert("hi"); $("#ctl00_MainContent_lbltxt").text(data.d); }, error: function(result) { alert("Error"); } }); });
在.cs文件中(返回String):
[WebMethod] public static string DisplayData() { return DateTime.Now.ToString(); }
这很好用。
如何使用JSON
和JQuery
访问DataTable
?
[WebMethod] public static DataTable DisplayData() { DataTable dt = new DataTable(); return dt.GetData(); }
我想使用JSON和JQuery返回DataTable并将GridView / Access绑定到DataTable的每一行 。 请建议我使用JSON
Return
DataTable
的正确方法。
我看过一些使用handlers
示例和一些使用WebMethod
示例。 哪一个使用?
一个是另一个有什么好处。
帮助感谢!
这是我通常的做法。我将数据表内容加载到字典中,序列化它,一切正常。您可以修改代码以满足您的需求。
[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 dict = new Dictionary(); 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); }
在你的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 } });
关于如何使用java脚本或jquery加载网格视图有很多教程。这至少会给你一个起点。你可以在这里找到一个很好的例子。使用gridview做CRUD操作请看这里的链接