На моей странице ASPX у меня есть следующий ComboBox, который должен быть заполнен из Ajax WebMethod.Чтобы заполнить ComboBox (ajaxToolkit) из Ajax WebMethod
<ajaxToolkit:ComboBox ID ="cbMembers" runat="server"></ajaxToolkit:ComboBox>
WebMethod, который заполняет ComboBox вызывается следующим образом:
$.ajax({
type: "POST",
url: functions.aspx/members",
data: "{SearchInput: '" + SearchInput + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
var cbMembers = $("[id*=cbMembers]");
$.each(r.d, function() {
cbMembers.append(-- My problem is here --);
})
}
});
WebMethod
List<ListItem> members = new List<ListItem>();
...
if (Reader.HasRows)
{
while (Reader.Read())
{
members.Add(new ListItem
{
Value = HttpUtility.HtmlEncode((string)(Reader["name"])),
Text = HttpUtility.HtmlEncode((string)(Reader["name"]))
});
}
}
return members;
...
Данные правильно извлекаются из WebMethod. Я протестировал его. Но моя проблема состоит в том, чтобы заполнить элементы списка в ComboBox. Любой совет?
success: function (r) {
var cbMembers = $("[id*=cbMembers]");
$.each(r.d, function() {
cbMembers.append(-- How to append the data here? --);
})
}
Я не считаю, что это легко сделать с чистым JavaScript. Проблема в том, что combobox не отображает как простой выбор, а как div, поэтому большая часть инициализации выполняется ASP.NET, и вам нужно реплицировать это. Я бы предложил рассмотреть вариант с несколькими вариантами выбора, с которыми легко справиться в JS, или UpdatePanel – Andrei
Возможно, вы правы. Я пробовал много способов, но никто, кажется, неправильно заполняет ComboBox. – Gloria