2013-04-18 32 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

謝謝你太多了。我感到非常愚蠢......嘗試每一個我可以想到的技巧來解決它..謝謝你! –