Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在加载时加载Gridview_Javascript_C#_Jquery_Asp.net_Gridview - Fatal编程技术网

Javascript 无法在加载时加载Gridview

Javascript 无法在加载时加载Gridview,javascript,c#,jquery,asp.net,gridview,Javascript,C#,Jquery,Asp.net,Gridview,我无法在页面加载时加载gridview。它一直给我 未捕获的TypeError:无法读取未定义的属性“length”。 我已经记住了下面的代码和处理程序。请帮我解决这个问题。问题发生在Jquery中 <script type="text/javascript"> $(document).ready(function () { BindGridView(); }); function Bin

我无法在页面加载时加载gridview。它一直给我

未捕获的TypeError:无法读取未定义的属性“length”。 我已经记住了下面的代码和处理程序。请帮我解决这个问题。问题发生在Jquery中

 <script type="text/javascript">
             $(document).ready(function () {
                 BindGridView();

             });


 function BindGridView() {
             $.ajax({
                 type: "POST",
                 url: "../Pm/uc/G.ashx/GetMailDetail",
                 contentType: "application/json;charset=utf-8",
                 data: {},
                 dataType: "json",
                 success: function (data) {
                     if (data.d.length > 0) {
                         $("#grdDemo").append("<tr><th>Username</th></tr>");
                         for (var i = 0; i < data.d.length; i++) {

                             $("#grdDemo").append("<tr><td>" + 
                             data.d[i].Username + "</td> <td>");
                         }
                     }
                 },
                 error: function (result) {
                 }
             });
         }
        </script>

     <asp:GridView ID="grdDemo" runat="server">
        </asp:GridView>
这在处理程序中。您可以用任何内容替换查询

 public void ProcessRequest(HttpContext context)
    {
        //int mailid = int.Parse(context.Request["mid"]);
        //var detail = GetMailDetail(mailid);
        var detail = GetMailDetail();

        if (detail != null)
        {
            context.Response.ContentType = "application/json";
            string json = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(detail);
            context.Response.Write(json);
        }
        else
        {
            context.Response.StatusCode = 404;
        }
    }

    //protected object GetMailDetail(int mailid)
    protected object GetMailDetail()
    {
        List<DetailsClass> Detail = new List<DetailsClass>();

        Connection Con = new Connection();
        String Connection = Con.Active_Connection();
        SqlConnection con = new SqlConnection(Connection);
        con.Open();
        DataTable dt = new DataTable();

        SqlCommand cmd = new SqlCommand("select Sp4_Txt from  Sp4", con);

        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dtGetData = new DataTable();

        da.Fill(dtGetData);

        foreach (DataRow dtRow in dtGetData.Rows)
        {
            DetailsClass DataObj = new DetailsClass();
            DataObj.Username = dtRow["Sp4_Txt"].ToString();
            Detail.Add(DataObj);
        }

        return Detail.ToArray();
    }
    public class DetailsClass //Class for binding data
    {
        public string Username { get; set; }
    }
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}
无法读取未定义的属性“length”

出现此错误的原因是,您访问data.d时未检查data,访问data.d.length时未检查data.d

这样做:

if(data){
    if(data.d){
        if (data.d.length > 0) {
                 $("#grdDemo").append("<tr><th>Username</th></tr>");
                 for (var i = 0; i < data.d.length; i++) {

                     $("#grdDemo").append("<tr><td>" + 
                     data.d[i].Username + "</td> <td>");
                 }
             }
      }
}

您好,您可以在$document.ready任何更改之前声明函数BindGridView吗?为什么要访问data.d.length?d在哪里?你期望那是什么?您是否查看了浏览器的网络控制台,以确保在AJAX调用中从服务器接收到预期的内容?为什么不正确处理SqlConnection之类的对象?为什么要先将数据放入DataTable,而不是直接进入强类型类?有人能帮我编写代码吗。