填充下拉列表中的项目

时间:2014-02-26 09:34:55

标签: c# jquery asp.net

我的代码后面有一个函数

    [System.Web.Services.WebMethod]
    public static pcpName[] getPcpNames(string pcpCounty, string claimType)
    {
        List<pcpName> pcpNames = new List<pcpName>();
        string query = "SELECT DISTINCT [PCP_ID], [PCP_NAME]+':'+[PCP_ID] AS [PCP_NAME] FROM [dbo].[FreedomTrinity] WHERE [PCP_COUNTY] = '" + pcpCounty + "' AND [CLAIM_TYPE] = '" + claimType + "'";

        SqlDataReader reader = Database.SQLRead(query);
        while (reader.Read())
        {
            pcpName names = new pcpName();
            names.PCP_ID = reader.GetString(0);
            names.PCP_NAME = reader.GetString(1);
            pcpNames.Add(names);
        }

        return pcpNames.ToArray();
    }

现在我想使用jQuery使用此输出来填充下拉列表中的项目。 所以我在我的js文件中编写了这样的代码。

 $(document).ready(function () {
$("#drpPcpCounty").change(function () {
        //Remove items from drpPcpName
        $("#drpPcpName option").remove();

        $.ajax({
            type: "POST",
            url: "FreedomContestation.aspx/getPcpNames",
            data: '{pcpCounty: "' + $("#drpPcpCounty").val() + '", claimType: "' + $("input:radio[name='rbtnlstClaimType']:checked").val() + '" }',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                response($.map(data.d, function (item) {                      
                for (i in data) {
                    var d = data[i];
                $('#drpPcpName').append($("<option></option>").attr("value", d.PCP_ID).text(d.PCP_NAME));
                }
                }))
            },
            failure: function (response) {
                alert(response.d);
            }
        });
    });
});

但下拉列表中没有发生任何事情。代码背后的代码是使用值返回数组。成功后该怎么办:??

编辑1

我跟踪代码直到response($.map(data.d, function (item) {。但我不知道里面发生了什么。 alert()

内没有response($.map(data.d, function (item) {工作

1 个答案:

答案 0 :(得分:1)

试试这个:

success: function (data) {
    for (var i = 0;i < data.d.length;i++) {
            var d = data.d[i];
            $('#drpPcpName').append($("<option></option>").attr("value", d.PCP_ID).text(d.PCP_NAME));
        }
},