如何在asp.net中使用JSON和JQuery从WebMethod返回DataTable?

如何在asp.net中使用JSON和JQuery从WebMethod返回DataTable?,jquery,asp.net,json,asynchronous,datatable,Jquery,Asp.net,Json,Asynchronous,Datatable,我不熟悉JSON。我创建了一个示例,它从WebMethod返回字符串,并将返回的值分配给asp.net Label控件 示例JSON返回字符串: <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server"> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jque

我不熟悉
JSON
。我创建了一个示例,它从
WebMethod
返回
字符串
,并将返回的值分配给
asp.net Label
控件

示例JSON返回字符串:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
    $(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");
            }
        });
    });
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">

<label id="lbltxt" runat="server"></label>
</asp:Content>
[WebMethod]
    public static string DisplayData()
    {
        return DateTime.Now.ToString();
    }
这个很好用

如何使用
JSON
JQuery
访问
DataTable

[WebMethod]
    public static DataTable DisplayData()
    {
        DataTable dt = new DataTable();
        return dt.GetData();
    }
我想返回DataTable并使用JSON&JQuery绑定GridView/访问
DataTable
的每一行。请建议我使用
JSON
返回
DataTable
的正确方法

我看到一些使用
处理程序的示例
&一些使用
WebMethod
的示例。使用哪一个?

一个比另一个有什么好处


谢谢你的帮助

我通常是这样做的。我将
DataTable
内容加载到一个字典中,对它进行序列化,然后一切正常。您可以修改代码以满足您的需要

[WebMethod]
公共字符串GetQueryInfo()
{
字符串daresult=null;
DataTable yourDatable=新数据表();
数据集ds=新数据集();
添加(yourDataTable);
daresult=DataSetToJSON(ds);
返回结果;
}
公共字符串DataSetOJSON(数据集ds)
{
Dictionarydict=newdictionary();
foreach(ds.表中的数据表dt){
object[]arr=新对象[dt.Rows.Count+1];

对于(int i=0;i hi@append Masaraure,在进行一些修改后,此代码将运行。但是,我无法将GridView与此返回的DataTable绑定。请告诉我如何做?我已使用一个链接更新了我的答案,您可以引用。您的json返回对象是什么样子的。如果您仍然无法将行附加到网格视图,请告诉我。哦…在你回复我之前,我已经完成了相同的…!现在,如何传递CommandName和CommandArguments?我已经在gmail上向你发送了一个聊天请求。你需要明确说明你想用这些参数做什么。请记住,因为你会呈现gridview客户端,服务器不知道gridview的当前视图状态好吧,我们为什么不使用我已经创建了它…请加入这里。。