0
我在嘗試使用ajax/jquery/webmethod更新列表框。從檢查chrome中的開發人員工具中的網絡活動,我可以看到webmethod正在返回值,但這些值不會被附加到列表框中。所以我想這個問題必須與我的JavaScript代碼。有人可以看看代碼並告訴我爲什麼這不起作用嗎? listbod被稱爲ListBox1並位於Homepage.aspx頁面中。使用javascript將webmethod結果附加到列表框
$(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;
}
我試着按照你的建議,但結果仍然沒有被追加到列表框中。任何其他想法? – MattSull 2012-04-23 12:36:34
現在正在工作,非常感謝!一個小問題,我登錄的第一個用戶會在列表框中出現兩次,隨後的用戶會根據需要出現一次。你有什麼想法可能會造成這種情況?它可能會降低到應用程序中其他位置的錯誤。 – MattSull 2012-04-23 17:22:45
嗯,我認爲我粘貼的代碼應該是'lBox [0] .options [i] = ...'而不是'lBox [0] .options [i + 1] = ...'。除此之外,我看不到任何可能導致這種情況的代碼。 – Carl 2012-04-24 08:13:35