是否可以将参数的列表/数组传递给C#中的JS函数?

时间:2015-07-20 21:55:58

标签: javascript c# parameters arguments code-behind

例如,是否可以将以下参数作为参数传递给代码隐藏的JS函数?:

ddlLines.Attributes.Add("onchange", "setPanel("
        + " '" + ddlAdd.ClientID + "', "
        + " '" + nCkPTitle.ClientID + "', "
        + " '" + manCkEntry.ClientID + "', "
        + " '" + nCkLabel.ClientID + "', "
        + " '" + txtRefNo.ClientID + "', "
        + " '" + TCEE.pval + "', "
        + " '" + TCEE.ptxt + "', "
        + " '" + ddlLines.ClientID + "' "
        + ");"

此时我的JS函数参数列表如下:

function setPanel(ddlClientId, lblClientId, lblManCLientId, 
    lblRefNo, altRefNo, altValParm, altTxtParm, ddlLinesClientId){
   ...
}

我希望能够从后面的代码动态地发送一个参数的不确定列表作为JS函数的参数。

我已经研究过.apply()函数,但是无法成功使用它。

1 个答案:

答案 0 :(得分:0)

你只需要添加[],它就是js中的数组

ddlLines.Attributes.Add("onchange", "setPanel("
        + " ['" + ddlAdd.ClientID + "', "
        + " '" + nCkPTitle.ClientID + "', "
        + " '" + manCkEntry.ClientID + "', "
        + " '" + nCkLabel.ClientID + "', "
        + " '" + txtRefNo.ClientID + "', "
        + " '" + TCEE.pval + "', "
        + " '" + TCEE.ptxt + "', "
        + " '" + ddlLines.ClientID + "'] )"
        );

但我建议您可以在这里使用json,例如

ddlLines.Attributes.Add("onchange", "setPanel("
            + " {'aaaID':'" + ddlAdd.ClientID + "', "
            //...
            + " 'zzzID':'" + ddlLines.ClientID + "'} )"
            );