2016-10-13 3 views
0

Ich möchte ReportViewer-Steuerelement in die ASCX-Datei Portlet-Rendering parametrischer Suche enthalten.So verwenden Sie ReportViewer in Sensenet

I RDLC Datei im Content-Repository gestellt und es in Pfad Illegale Zeichen "Fehlermeldung

<% 
.... 

//retrieve rdlc file 

string Path = "/Root/Global/renderers/ReportFiles/Report1.rdlc" 

Node node = Node.LoadNode(Path); 
var binaryData = node.GetBinary("Binary"); 
System.IO.Stream stream = binaryData.GetStream(); 

//setup report 
ReportViewer1.ProcessingMode = ProcessingMode.Local; 
ReportViewer1.LocalReport.LoadReportDefinition(stream); 
ReportDataSource datasource = new ReportDataSource("Results", dsResults.Tables[0]); 
ReportViewer1.LocalReport.DataSources.Add(datasource); 

%> 
<div id="rptvwr"> 
    <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server"> 
    </asp:ScriptManagerProxy> 

    <rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="600"> 
    </rsweb:ReportViewer> 
</div> 

Dies führt dazu, richtig als binärer Dampf abgerufen wird.

Nachdem ich meinen Code um ein wenig geändert und ich habe jetzt die folgende Situation:

  • , wenn ich von Reportviewer-Steuerelement erforderlich <asp:Scriptmanager>-Tag, ich eine Fehlermeldung, die nur eine Script pro Seite erlaubt ist

  • wenn ich <asp:ScriptManagerProxy>-Tag verwenden, erhalte ich eine Fehlermeldung, die besagt

    Portlet-Fehler: der Report Viewer Web Control erfordert einen System.Web.UI.ScriptManager auf der w eb Form.

Antwort

3

Es kann nur einen Script Steuerelement auf der Seite sein, und SenseNet erzeugt bereits ein automatisch, man kann nicht viel dagegen tun es. Tatsächlich ist es ein benutzerdefiniertes Steuerelement mit der Bezeichnung SNScriptManager (es erbt vom Standard-Skriptmanager-Steuerelement), das der Seitentemplate-Manager automatisch in die generierte Masterseite einfügt. Du kannst also keinen anderen manuell in deinen Ascx einfügen.

Sie können weiterhin zusätzliche Skripts mit dem ScriptManagerProxy-Steuerelement hinzufügen, wenn Sie dies gemäß MSDN möchten. Oder Sie können das eingebaute sn: ScriptRequest-Steuerelement verwenden, das SenseNet anbietet, es hilft beim Bündeln - aber all das trifft natürlich nur zu, wenn Sie genau wissen, welche Skripte Sie hinzufügen müssen.

Vielleicht ist die Report Steuerung für den Standard sieht Skript-Manager und nicht wie die benutzerdefinierten (geerbt) ein, die von SenseNet (ich hoffe, dies nicht der Fall ist).

(Es ist unklar, aus Ihrer Frage, was passiert, wenn Sie nicht die sm-Proxy oder ein anderes Tag hinzufügen, da die beiden letzten Aufzählungspunkte mit "wenn ich Tag verwende ..." beginnen - welches Tag meinst du hier?)

Ist die erste Fehlermeldung ('ungültige Zeichen im Pfad') immer noch relevant? Wenn ja, können Sie bitte weitere Details hinzufügen, z. eine Stapelverfolgung von der Ereignisanzeige?