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;
}