【发布时间】:2012-04-03 13:12:14
【问题描述】:
我有一个列表框,我想通过使用 jquery/ajax 从代码隐藏页面调用 webmethod 来更新它。列表框显示所有已登录的用户(成功登录后将它们添加到全局列表中)。我显然可以使用整页刷新来更新列表框,但这并不美观。我有两个问题。
当我在 chrome 中运行应用程序并通过开发工具检查网络活动时,我看不到 web 方法被调用。我有其他网络方法(我可以看到)正在按预期被解雇/执行。
我根据我找到的示例编写脚本,所以我不完全确定(我对这些领域相对较新)如果我 (a) 从列表中正确获取数据(我只是希望显示用户名)和(b)将其正确附加到列表框。
这是网络方法:
[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();**//edited...**
}
return results;
}
和脚本:
$(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: "json=" + JSON.stringify(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('\n'));
}
else alert("No new items to update...");
}
});
}, 5000);
});
欢迎和赞赏所有帮助和建议
【问题讨论】:
标签: jquery asp.net ajax webmethod