Auf meiner ASPX-Seite habe ich die folgende ComboBox, die von einer Ajax WebMethod gefüllt werden sollte.Füllen einer ComboBox (ajaxToolkit) von einer Ajax WebMethod
<ajaxToolkit:ComboBox ID ="cbMembers" runat="server"></ajaxToolkit:ComboBox>
Die WebMethod dass die ComboBox füllt wie folgt aufgerufen wird:
$.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;
...
die Daten korrekt aus dem WebMethod abgerufen wird. Ich habe es getestet. Aber mein Problem ist, die Listenelemente in der ComboBox zu füllen. Irgendein Rat?
success: function (r) {
var cbMembers = $("[id*=cbMembers]");
$.each(r.d, function() {
cbMembers.append(-- How to append the data here? --);
})
}
Ich glaube nicht, es eine einfache Sache ist, mit reinem Javascript zu tun. Das Problem ist, dass die Combobox nicht so einfach als select, sondern als div dargestellt wird. Daher wird ASP.NET für die Initialisierung verwendet, und Sie müssen diese replizieren. Ich würde vorschlagen, stattdessen entweder mehrere Auswahl Dropdown-Liste, die einfach in JS zu behandeln ist, oder UpdatePanel – Andrei
Sie könnten Recht haben. Ich habe viele Möglichkeiten ausprobiert, aber keiner scheint die ComboBox korrekt zu füllen. – Gloria