从使用AJAX填充的下拉列表中获取值

时间:2013-01-26 15:00:13

标签: c# jquery asp.net .net ajax

我已经使用AJAX填充了ASP.net下拉列表,现在我需要使用C#方法将Id存储到数据库中,(我正在使用LINQ)

这是我的网络方法

[WebMethod]
public static ArrayList GetLanguageList()
{
    ArrayList lstArrLanguage = new ArrayList();
     IQueryable<Common.Town> myList = new SupplierBL().GetTowns();
     foreach(Common.Town t in myList)
    {
        string name = t.Name;
        string id = t.TownId.ToString();
        lstArrLanguage.Add(new ListItem(name, id));
    }

    return lstArrLanguage;
}

我的test.aspx代码

<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        $.ajax({
            type: "POST",
            url: "test.aspx/GetLanguageList",
            data: '',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                $("#ddlLanguage").empty().append($("<option></option>").val("[-]").html("Please select"));
                $.each(msg.d, function () {
                     $('#<%=ddlLanguage.ClientID%>').append($("<option></option>").val(this['Value']).html(this['Text']));
                });
            },
            error: function () {
                alert("An error has occurred during processing your request.");
            }
        });
    });
</script>

2 个答案:

答案 0 :(得分:7)

如果您在DropDownList中添加选项,则无法从javaScript获取所选值。您可以尝试以下

string selectedValue = Request.Form[ddlLanguage.UniqueID];

question也可能有用。

答案 1 :(得分:0)

如果您通过ajax填充下拉列表的值比在服务器端上不可用,因为页面在ajax请求期间不回发。

为了获得C#中下拉列表的值,请使用以下代码段:

String _value = Convert.ToString(Request[ddlLanguage.ClientID]);

希望这会有所帮助!!