2013-04-18 33 views
0

我想从.NET应用程序传递参数给我的SSRS报告。如果URL中的多个参数不会启动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)

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

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

有什么想法?

回答

1

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

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

谢谢你太多了。我感到非常愚蠢......尝试每一个我可以想到的技巧来解决它..谢谢你! –