如何为Fill DropDownList编写公共函数

时间:2012-07-24 20:13:47

标签: json jquery

我想为Fill DropDownlist编写公共函数。当程序员想要填充DropDownlist调用此方法并设置参数。我写这段代码

function FillDropDownlist(url,dataPas,selector,indexValue,indexText) {

    $.ajax({
        cache: false,
        contentType: 'application/json; charset=utf-8',
        url: url,
        data:{dataPas},
       success: function (data) {
            var rows = data.rows;
            var drpTransportType = $(selector);
            var strOption = '<option value=0>...Select.....</option>';
            $(selector+" option").remove();
            if (data.rows.length >= 0) {
                for (var i = 0, l = rows.length; i < l; i++) {
                    var ri = rows[i];
                    strOption += '<option value="' + ri.cell[indexValue] + '">' + ri.cell[indexText] + '</option>';
                }
                drpTransportType.append(strOption);
            }
        },
        dataType: 'json'

    });

}

并且对于呼叫我写这段代码

 FillDropDownlist("JQGridHandler.ashx", "ActionPage:'TransportType',Action:'FillDrop'", "#Select1", 0, 1);

但此代码不起作用,并获得错误

Error: FillDropDownlist is not defined

我认为这一行有错误

  data:{dataPas},

请帮助我完成此功能,谢谢所有

2 个答案:

答案 0 :(得分:1)

一些事情:(1)使用JavaScript函数名称的camelCase命名约定。 (2)确保在调用之前评估该功能。因此,如果它位于不同的js文件中,请确保在调用该函数之前包含该文件。 (3)将data:{dataPas}更改为data: dataPas(我认为你拼错了“通过”但无论如何)。然后,您的dataPas对象应采用javascript对象表示法,例如dataPas = {foo: "foo", bar: "bar"};

答案 1 :(得分:1)

如果dataPas是本机JavaScript对象,则将dataPas作为data:JSON.stringify(dataPas)

传递

P.S:在不相关的旁注中,您可以省略dataType: 'json',而contentType只需contentType: 'application/json'Link here