我正在尝试使用 ajax/jquery/webmethod 更新列表框。通过在 chrome 中检查开发人员工具中的网络活动,我可以看到 webmethod 正在返回值,但这些值没有被附加到列表框中。所以我想问题一定出在我的javascript代码上。有人可以看一下代码并告诉我为什么这不起作用吗?listbod 称为 ListBox1,位于 Homepage.aspx 页面中。
$(function updateListbox() {
var lBox = $('select[id$=ListBox1]');
setInterval(function () {
$.ajax({
beforeSend: function (req) {
req.setRequestHeader("Accept", "application/json");
},
type: "POST",
url: "Homepage.aspx/getCurrentList",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var results = data.d;
if (results.length > 0) {
var updatedList = [];
for (var i in results) {
updatedList.push(results[i]);
}
$(lBox).append(updatedList.join(''));
}
else alert("No new items to update...");
}
});
}, 5000);
});
[WebMethod()]
public static string[] getCurrentList()
{
int count = 0;
for(int i = 0; i < Global.ListUsers.Count(); i++)
count++;
string[] results = new string[count];
for (int i = 0; i < count; i++)
results[i] = Global.ListUsers[i].Username.ToString();
return results;
}