我有一个返回列表的Web方法。
<WebMethod()> _
Public Shared Function populateDropdown(ByVal aptdate As Date, ByVal dentistid As Integer) As List(Of String)
Dim apttime As New List(Of String)
Try
apttime = DatabaseLayer.GetAvailableAppointmentTime(aptdate, dentistid)
Catch ex As Exception
Throw ex
End Try
Return apttime
End Function
结束班
我想用上面的结果集
填充下拉列表我正在使用jquery ajax函数来执行此操作。
$.ajax({
type: "POST",
url: "Appointment.aspx/populateDropdown",
data: '{aptdate:' + '"' + aptdate + '"' + ',dentistid:' + '"' + dentistid + '"' + ' }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data.d.length);
var options = $("#drpdwnapttime");
$.each(data, function (key,value) {
alert(value);
options.append($("<option />").val(this.data).text(this.data));
});
}
});
然而,这似乎不起作用。警报框中的值为11,因此我假设我正在正确地对阵列。每个警报只显示一个循环,然后没有任何反应。 我真的不知道这里有什么不对。 编辑: 改变了代码和 我在$ .each中添加了一个警报图像。我不应该只获得一个价值吗?
答案 0 :(得分:0)
jQuery.each将密钥和值传递给回调函数:
$.each(data, function(key, value) {
options.append($("<option />").val(value).text(value));
});
答案 1 :(得分:0)
我想在下面的代码中
options.append($("<option />").val(this.data).text(this.data));
this.data不起作用你必须看到数据的属性
like(data.somethingYourProperyname)
答案 2 :(得分:0)
需要将data.d
传递给$ .each()。由于data.d
是字符串数组,this
应该是字符串本身,而不是this.data
...
$.each(data.d, function () {
options.append($("<option />").val(this).text(this));
});
答案 3 :(得分:0)
因为它是一个列表,所以使用它来访问
$.each(data, function () {
options.append($("<option />").val(this).text(this));
}
答案 4 :(得分:0)
这很有效。感谢所有我不会想到的建议。
var resultData = data['d'];
$.each(resultData, function (key,value) {
alert(this);
options.append($("<option />").val(value).text(value));
})