如果URL中有多个参数,SSRS报告将不会启动

时间:2013-04-18 01:30:47

标签: c# asp.net reporting-services parameters ssrs-2008

我正在尝试从.NET应用程序将参数传递给我的SSRS报告。

我有3个参数要传递:instanceID,EL和OL。

在我的代码隐藏中,我的代码如下:

        string params = Session["instanceID"].ToString() + "&EL=unhide&OL=unhide";
        string script = "<SCRIPT LANGUAGE='JavaScript'> ";
        script += "OpenLink1(" + params + ");";
        script += "</SCRIPT>";
        Page.RegisterStartupScript("ClientScript", script);

我的javascript代码如下:

function OpenLink1(params ) {
    var str = "http://server/ReportServer/Pages/ReportViewer.aspx?%2f<path>%2f<report name>%2<report name>&rs:Command=Render&instanceID=" + params;

    window.open(str, "List", "scrollbars=yes,resizable=yes,width=800,height=600");
    return false;
}

无论我做什么,报告都不会启动(弹出)。

EL和OL参数应该隐藏SSRS报告中的表格。

e.g。 =IIF(Parameters!EL.Value = "hide", false, true)

如果我从报告中删除这两个参数并删除后面代码中URL中的参数,则SSRS报告会毫无问题地启动。

令我困惑的是,如果我直接在浏览器中输入网址,报告工作正常 - 这让我相信与编码和传递参数有关的内容是错误的?

有什么想法吗?!

1 个答案:

答案 0 :(得分:1)

问题出在您在代码后面生成的javascript中。当你在生成的javascript中创建函数调用时,需要在params变量周围加上单引号。

    script += "OpenLink1('" + params + "');";