2013-03-12 60 views
0

我正在將一個web窗體應用程序移植到mvc。表單應用程序大量使用ReportViewer控件,該控件在mvc世界中不能很好地擴展。我從頭開始。如果沒有自定義渲染器,我無法可靠地複製的唯一屬性是頁數和總頁數。如何使用ReportExecution獲取這些值?我對將時間/資源投入自定義渲染器感到非常猶豫。我能想到和不喜歡的唯一事情是設置DeviceInfo.Section,並在不在範圍內時捕捉異常。報告以HTML40格式呈現。SSRS和渲染和流信息

+0

我很想知道你爲什麼從無到有。 – user1225352 2013-03-12 00:30:49

+0

這是一個挑戰。我有一個基本的觀點,可以注入報告爲HTML。我正在使用razor @RenderSections從基本視圖渲染衍生報告參數以派生視圖(BaseView-> DerivedView)。在Ajax Postback上,我調用一個計算參數的控制器方法並返回url。在基類中,我捕獲該URL並使用格式選項加載它,以將html加載到div中,或者將其作爲文件輸出。這是一個三跳過程來捕捉參數變化並計算渲染的URL :(我發送html | pdf | excel到最終的render方法返回文件或html。 – 2013-03-12 00:41:16

回答

1

繼續使用嵌入在.aspx頁面ReportViewer控件,並創建一個MVC路由到此頁:

routes.MapPageRoute(
      "Reports", 
      "Reports/{folder}/{name}", 
      "~/Reports/default.aspx", 
      false, 
      new RouteValueDictionary(
       new { folder = "", name = "", controller = "", action = "" }), 

      new RouteValueDictionary(
       new { constraint = new ReportConstraint() }) 
     ); 
+0

感謝您的回答。我應該說我我試圖在部分視圖中渲染報告,報告內容url以異步方式發回,並且html元素正在從該url中饋送。恐怕這不能與reportviewer重複嗎? – 2013-03-12 00:33:19