Javascript 在C中使用AJAX绑定gridview时报告“undefined”

Javascript 在C中使用AJAX绑定gridview时报告“undefined”,javascript,c#,asp.net,ajax,gridview,Javascript,C#,Asp.net,Ajax,Gridview,我想使用AJAX绑定gridview。为此,我使用AJAX和服务器端代码作为webmethod编写了客户端代码 一切都很好,即使我在成功方法中警告数据,当时也显示数据,但在循环中,我真的很困惑,它在警告中显示未定义。所以这就是为什么网格没有绑定 这是我的密码 $.ajax({ type: "POST", url: "schoolregistration.aspx/GetGridData", contentType: "application/json; charset=u

我想使用AJAX绑定gridview。为此,我使用AJAX和服务器端代码作为webmethod编写了客户端代码

一切都很好,即使我在成功方法中警告数据,当时也显示数据,但在循环中,我真的很困惑,它在警告中显示未定义。所以这就是为什么网格没有绑定

这是我的密码

$.ajax({
    type: "POST",
    url: "schoolregistration.aspx/GetGridData",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    success: function (data) {
        for (var i = 0; i < data.d.length; i++) {
            $("#grid_schooldata").append("<tr><td>" + data.d[i].schoolName);
        }
    },
    failure: function () {
        alert("error! try again...");
    }
});
首先

ExecuteScalar执行查询,并返回查询返回的结果集中第一行的第一列。其他列或行将被忽略

在本例中,您将拥有一个字符串

其次,请注意查询中的名称,将其保留为schoolname而不是[schoolname]

然后,您必须序列化为json并再次解析为json,以便在对象之间循环

以下是完整的工作代码:

$.ajax({
    type: "POST",
    url: "schoolregistration.aspx/GetGridData",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    success: function (data) {
        data = JSON.parse(data.d);
        for (var i = 0; i < data.length; i++) {
          $("#grid_schooldata").append("<tr><td>" + data[i].schoolname +"</td></tr>");      
        }
    },
    failure: function () {
        alert("error! try again...");
    }
});



[WebMethod]
public static string GetGridData()
{
    using (var con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
    using (var cmd = new SqlCommand("select schoolname from tbl_schoolregistration", con))
    {
        con.Open();
        //object val = cmd.ExecuteScalar();
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        adp.Fill(dt); // fills data from select query

        // return val == DBNull.Value ? "" : (string)val;
        return JsonConvert.SerializeObject(dt);
    }
}
首先

ExecuteScalar执行查询,并返回查询返回的结果集中第一行的第一列。其他列或行将被忽略

在本例中,您将拥有一个字符串

其次,请注意查询中的名称,将其保留为schoolname而不是[schoolname]

然后,您必须序列化为json并再次解析为json,以便在对象之间循环

以下是完整的工作代码:

$.ajax({
    type: "POST",
    url: "schoolregistration.aspx/GetGridData",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    success: function (data) {
        data = JSON.parse(data.d);
        for (var i = 0; i < data.length; i++) {
          $("#grid_schooldata").append("<tr><td>" + data[i].schoolname +"</td></tr>");      
        }
    },
    failure: function () {
        alert("error! try again...");
    }
});



[WebMethod]
public static string GetGridData()
{
    using (var con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
    using (var cmd = new SqlCommand("select schoolname from tbl_schoolregistration", con))
    {
        con.Open();
        //object val = cmd.ExecuteScalar();
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        adp.Fill(dt); // fills data from select query

        // return val == DBNull.Value ? "" : (string)val;
        return JsonConvert.SerializeObject(dt);
    }
}

从这段代码中,任何人现在都可以理解您想要哪种类型的示例?从这段代码中,任何人现在都可以理解您想要哪种类型的示例?