我正在尝试从.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报告会毫无问题地启动。
令我困惑的是,如果我直接在浏览器中输入网址,报告工作正常 - 这让我相信与编码和传递参数有关的内容是错误的?
有什么想法吗?!
答案 0 :(得分:1)
问题出在您在代码后面生成的javascript中。当你在生成的javascript中创建函数调用时,需要在params变量周围加上单引号。
script += "OpenLink1('" + params + "');";