我有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;
}
但是现在当我获得城市下拉列表的选定值时,我将获得空值:
protected void Save_Click(object sender, EventArgs e)
{
var cityId=ddlCity.SelectedValue;//Getting null here;
}
有人可以告诉我为什么会这样,以及如何在保存事件中获得城市的选定价值???
答案 0 :(得分:1)
尝试使用jquery ..
var selectedcity = $(select).val();
注意:
您还没有告诉我们有关保存事件的任何信息,或者向我们展示了代码,上面的代码行只是从您的城市下拉列表中获取当前选定的值。