在表中插入记录时,将选定值作为城市下拉列表的空值

时间:2016-02-16 10:05:18

标签: c# jquery asp.net ajax webmethod

我有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;
}

有人可以告诉我为什么会这样,以及如何在保存事件中获得城市的选定价值???

1 个答案:

答案 0 :(得分:1)

尝试使用jquery ..

var selectedcity = $(select).val();

注意:

您还没有告诉我们有关保存事件的任何信息,或者向我们展示了代码,上面的代码行只是从您的城市下拉列表中获取当前选定的值。