所以我有这个ajax方法,帮助我从表中找到所选行,并将信息显示到一系列字段中。问题是第一次进行通话工作真的很好。但是,当我搜索另一条记录时,数据不会显示,我在网络浏览器控制台中收到此错误:
numPlayersSelected + "/" + 55
“Detalles?是json带回来的阵列。所以我认为请求的时间有问题,对此有什么建议吗?这是ajax方法:
Uncaught TypeError: Cannot read property 'Detalles' of null
我希望有人能帮助我......谢谢!
更新 这是将我的信息转换为JSon
的方法return $.ajax({
type: "POST",
url: "../../../ServiciosWeb.asmx/CargarDetallesRequisicion",
data: '{IdRequisicion:"'+ idRequisicion +'" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false
});
当我被指定为null时,我检查数据的返回,是的,它带来了信息,这就是为什么我的时间与时间有关。这是我调用Function DataSetToJSON(ds As DataSet) As String
Dim dict As New Dictionary(Of String, Object)
For Each dt As DataTable In ds.Tables
Dim arr(dt.Rows.Count - 1) As Object
For i As Integer = 0 To dt.Rows.Count - 1
arr(i) = dt.Rows(i).ItemArray
Next
dict.Add(dt.TableName, arr)
Next
Dim json As New JavaScriptSerializer
Return json.Serialize(dict)
End Function
方法的地方:
$.ajax
此条件位于 if (idRequisicion > 0) {
console.log(idRequisicion);
$.when(
CargarDetalles()
).done(MostrarDetalles);
}
解决:
所以它来了:
$(document).ready
忽略BlocUI,这是新的。总之,这解决了我的问题可能不是最有效的方法,但形成的时刻工作正常。
答案 0 :(得分:1)
jQuery.when期望延迟对象:
jQuery.when( deferreds ) Returns: Promise
提供一种基于一个或多个执行回调函数的方法 对象,通常是表示异步事件的延迟对象。
您应该将您的ajax请求直接放在$ .when内,而不是函数调用,如下所示:
$.when(
$.ajax({
type: "POST",
url: "../../../ServiciosWeb.asmx/CargarDetallesRequisicion",
data: '{IdRequisicion:"'+ idRequisicion +'" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false
}
).done(MostrarDetalles);
如果您需要相同的设置,也许您应该只返回像$.ajax(CargarDetalles())
这样的ajax设置而不是完整的请求