gpt4 book ai didi

javascript - 无法在加载时加载 Gridview

转载 作者:行者123 更新时间:2023-11-30 21:05:00 25 4
gpt4 key购买 nike

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

未捕获类型错误:无法读取未定义的属性“长度”。我已经提到了下面的代码和处理程序。请帮我解决这个问题。这个问题发生在 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;
}
}
}

最佳答案

Cannot read property 'length' of undefined.

出现此错误是因为您访问 data.d 时未检查 data 并且访问 data.d.length 时未检查 数据.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>");
}
}
}
}

关于javascript - 无法在加载时加载 Gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46743442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com