【发布时间】:2016-05-27 13:06:59
【问题描述】:
我有 2 个下拉控件州和城市,我在其中使用 ajax jquery 填充城市下拉列表 通过从服务器端调用 Web 方法,但在提交事件时我没有得到选定的值。
这是我的代码:
<asp:DropDownList ID="ddlState" runat="server" onchange=" LoadCity();"></asp:DropDownList>
<asp:DropDownList ID="ddlCity" runat="server"></asp:DropDownList>
function LoadCity() {
var select = document.getElementById("<%= ddlState.ClientID %>");
var id = select.options[select.selectedIndex].value;
$.ajax({
url: "/Abc.aspx/LoadCity",
type: "POST",
contentType: "application/json; charset=utf-8",
data: '{stateId: "' + id + '"}',
contentType: "application/json",
success: function (responce) {
var html = '<option value="0">Select City</option>';
$(responce.d).each(function () {
html += '<option value="' + this.Value + '">' + this.Text + '</option>'
});
$(document.getElementById("<%= ddlCity.ClientID %>")).html(html);
}
});
[WebMethod]
public static List<ListItem> LoadCity(int stateId)
{
var data = this.ReturnCity(stateId);
return data;
}
public List<ListItem> ReturnCity(int stateId)
{
var data = context.CityMasters.Where(t => t.StateId == stateId).ToList()
.select(t=> new ListItem {Text=t.Name,Value=t.Id.ToString()}).ToList();
return data;
}
但是现在当我得到 City 下拉列表的选定值时,我得到的是空值:
protected void Save_Click(object sender, EventArgs e)
{
var cityId=ddlCity.SelectedValue;//Getting null here;
}
谁能告诉我为什么会发生这种情况以及如何在保存事件中获取选定的城市值???
【问题讨论】:
-
查看为什么它不起作用的答案和解决方法 - SO link
标签: c# jquery asp.net ajax webmethod