我的 .aspx 页面 (rvSuggestions) 中有一个 ReportViewer 控件,用于显示报告 (rptCountByUnit)。该报告使用数据源 objdsCountByUnit,它使用存储过程(dsCountByUnit.xsd 中的 tableadapter)获取数据。存储过程接受参数@fromDate(从页面上的txtFrom 传递)和@toDate(从页面上的txtTo 传递)。
当我打开 dsCountByUnit.xsd 并预览数据时,我得到了我期望的结果,但是当我运行我的页面时,没有显示 rvSuggestions。DIV 容器就像它在那里一样向下扩展,但是我只看到一个空白区域。
回发是由 btnSubmit 触发的,我已经添加了以下代码,如该链接中所述,但是它没有解决问题(奇怪的是,它确实解决了我一直在从事的另一个项目的问题)
rvSuggestions.Visible = True
rvSuggestions.ProcessingMode = ProcessingMode.Remote
rvSuggestions.ProcessingMode = ProcessingMode.Local
rvSuggestions.LocalReport.Refresh()
这是我的 ReportViewer 和 Object 数据源:
<rsweb:ReportViewer ID="rvSuggestions" runat="server" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="870px" AsyncRendering="False">
<LocalReport ReportPath="Reports\rptCountByUnit.rdlc">
<DataSources>
<rsweb:ReportDataSource DataSourceId="objdsCountByUnit" Name="rptDataSet" />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
<asp:ObjectDataSource ID="objdsCountByUnit" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="dsCountByUnitTableAdapters.getCountOfSuggestionsByUnitTableAdapter">
<SelectParameters>
<asp:ControlParameter ControlID="txtFrom" Name="fromDate" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="txtTo" Name="toDate" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
这是我的存储过程:
CREATE PROCEDURE getCountOfSuggestionsByUnit
@fromDate nvarchar(50),
@toDate nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
SELECT unit, COUNT (ref) as Suggestions
FROM suggestion.dbo.suggestions
where dateRaised BETWEEN @fromDate and @toDate
group by unit
有什么想法可能导致这种情况吗?