Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Sensenet中使用ReportViewer_C#_Asp.net_Asp.net Mvc_Reporting_Sensenet - Fatal编程技术网

C# 如何在Sensenet中使用ReportViewer

C# 如何在Sensenet中使用ReportViewer,c#,asp.net,asp.net-mvc,reporting,sensenet,C#,Asp.net,Asp.net Mvc,Reporting,Sensenet,我希望在参数化搜索portlet呈现ASCX文件中包含ReportViewer控件 我将RDLC文件放在内容存储库中,并将其作为二进制steam正确检索 <% .... //retrieve rdlc file string Path = "/Root/Global/renderers/ReportFiles/Report1.rdlc" Node node = Node.LoadNode(Path); var binaryData = node.GetBinary("Binary"

我希望在参数化搜索portlet呈现ASCX文件中包含ReportViewer控件

我将RDLC文件放在内容存储库中,并将其作为二进制steam正确检索

<%
....

//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>

这将导致“路径中的非法字符”错误消息

在我对代码做了一点修改之后,我现在遇到了以下情况:

  • 当我使用ReportViewer控件所需的
    标记时,我收到一条错误消息,即每页只允许一个ScriptManager

  • 当我使用
    标记时,我收到一条错误消息,说明

    Portlet错误:报表查看器Web控件需要Web窗体上的System.Web.UI.ScriptManager

页面上只能有一个ScriptManager控件,并且SenseNet已经自动生成了一个,您对此无能为力。实际上,pagetemplate管理器会自动将一个名为SNScriptManager的自定义控件(它继承自默认的scriptmanager控件)放入生成的母版页中。因此,您无法在ascx中手动放置另一个

根据,如果愿意,仍然可以使用ScriptManagerProxy控件添加其他脚本。或者,您可以使用SenseNet提供的内置sn:ScriptRequest控件,它有助于捆绑—但当然,只有在您确切知道必须添加哪些脚本的情况下,所有这些才适用

可能ReportViewer控件查找默认脚本管理器,而不喜欢SenseNet使用的自定义(继承)脚本管理器(我希望不是这样)

(您的问题不清楚如果不添加sm代理或任何其他标记会发生什么,因为最后两个要点都以“当我使用标记时…”开头-您在这里指的是哪个标记?)

第一条错误消息(“路径中的非法字符”)是否仍然相关?如果是,请添加更多详细信息,例如事件查看器中的堆栈跟踪?

页面上只能有一个ScriptManager控件,并且SenseNet已经自动生成了一个控件,对此您无能为力。实际上,pagetemplate管理器会自动将一个名为SNScriptManager的自定义控件(它继承自默认的scriptmanager控件)放入生成的母版页中。因此,您无法在ascx中手动放置另一个

根据,如果愿意,仍然可以使用ScriptManagerProxy控件添加其他脚本。或者,您可以使用SenseNet提供的内置sn:ScriptRequest控件,它有助于捆绑—但当然,只有在您确切知道必须添加哪些脚本的情况下,所有这些才适用

可能ReportViewer控件查找默认脚本管理器,而不喜欢SenseNet使用的自定义(继承)脚本管理器(我希望不是这样)

(您的问题不清楚如果不添加sm代理或任何其他标记会发生什么,因为最后两个要点都以“当我使用标记时…”开头-您在这里指的是哪个标记?)

第一条错误消息(“路径中的非法字符”)是否仍然相关?如果是,请添加更多详细信息,例如事件查看器中的堆栈跟踪