0

静的Webメソッドでは、データベースから選択したBankidとBanknameを辞書に入力します。Idはキーに移動し、値は値の部分に移動します。したがって、私の辞書には約20のキーと値のペアがあります。次に、この辞書をajax呼び出しに戻します。

      $.ajax({
            type: 'POST',
            url: 'AJAX.aspx/Banks',
            data: '',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data)
            {
                $.each(data.d, function ()
                {
                    $("#testDiv").append(this.Key + " " +this.Value + "<br/>");
                });
            },
            error: function (x, e)
            {
                alert("The call to the server side failed. " + x.responseText);
            }
        });

上記の場合、20行のundefinedundefinedを取得します。しかし、これから.Keyと.Valueの両方を削除すると、値が取得されるだけなので、銀行名が表示されます。選択要素に値を入力するため、キーと値の両方が必要です。値のキーと内部htmlの値です。私のwebmethodを見たい場合は、ここにあります:

    [WebMethod]
public static Dictionary<string, string> Banks()
{
    Dictionary<string, string> dict = new Dictionary<string, string>();
    DatabaseProvider provider = GetDatabaseProvider();
    provider.AddOutParameter("V_CUR", OracleType.RefCursor);
    DataTable dt=provider.SelectDataTable("AGAPUS.PAYMENT.SP_BANKS", CommandType.StoredProcedure);
    foreach (DataRow row in dt.Rows)
    {
        dict.Add(row["PAYMENTTYPE"].ToString(), row["PAYMENTTYPEID"].ToString());
    }
    return dict;
}
4

1 に答える 1

1

私にはjQueryに関する質問のように見えます。そうは言っても、成功関数を次のように変更してみてください。

success: function (data)
{
    $.each(data.d, function ( key, value )
    {
        $("#testDiv").append(key + " " + value + "<br/>");
    });
}

キーと値は、マップを評価するときにパラメーターとして関数に渡されます。

于 2012-11-19T14:39:10.340 に答える