0

我正在尝试将参数从 .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 报告中的表格。

例如=IIF(Parameters!EL.Value = "hide", false, true)

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

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

有任何想法吗?!

4

1 回答 1

1

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

    script += "OpenLink1('" + params + "');";
于 2013-04-18T02:04:25.417 回答