4

ASP.netドロップダウンリストにAJAXを入力しましたが、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>
4

2 に答える 2

7

DropDownListにオプションを追加すると、から選択した値を取得できませんjavaScript。あなたは以下を試すことができます

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

この質問も役立つかもしれません。

于 2013-01-26T16:09:08.740 に答える
0

ドロップダウンの値をajax経由で入力すると、ajaxリクエスト中にページがポストバックされないため、サーバー側で使用できなくなります。

C#でドロップダウンの値を取得するには、以下のスニペットを使用します。

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

これがお役に立てば幸いです!!

于 2013-01-26T15:31:38.403 に答える