2012-03-02 11 views
0

私のaspxでこのようなレポートビューを定義しました。レポートビューアでレポートを切り替えることはできません

<form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <div style="margin-left:auto;margin-right:auto;width:100%"> 
     <%--<asp:ScriptManager ID="ScriptManager1" runat="server">--%> 
      <rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="1024px" 
       Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)" 
       WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" 
      Height="768px"> 
       <LocalReport ReportPath="Reports\Gestion.rdlc"> 
        <DataSources> 
         <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="Prueba" /> 
        </DataSources> 
       </LocalReport> 
      </rsweb:ReportViewer> 
      <asp:ObjectDataSource ID="ObjectDataSource2" runat="server" 
      SelectMethod="obtenerGestionesPorTipificacion" 
      TypeName="SodexoSAT.Reports.DataSets.GestionesDataSet"> 
       <SelectParameters> 
        <asp:Parameter Name="gestion" Type="String" /> 
       </SelectParameters> 
     </asp:ObjectDataSource> 
     <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
      SelectMethod="obtenerTodasGestiones" 
      TypeName="SodexoSAT.Reports.DataSets.GestionesDataSet"> 
     </asp:ObjectDataSource> 
<%--   </asp:ScriptManager>--%> 
    </div> 
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
    style="margin-top: 47px" Text="Button" /> 
</form> 

私はボタンでクリックを行うとだから私はこの

ReportViewer1.Reset(); 
     ReportViewer1.LocalReport.ReportPath = @"Reports\GestionPorTipificacion.rdlc"; 
     ReportDataSource rds = new ReportDataSource(); 
     rds.DataSourceId = "ObjectDataSource2"; 
     ReportViewer1.LocalReport.DataSources.Clear(); 
     ReportViewer1.LocalReport.DataSources.Add(rds); 
     ReportViewer1.LocalReport.Refresh(); 

のようにレポートを変更することができますし、それは

A data source instance has not been supplied for the data source 'GestionesPorTipificacion'.

このエラーがスローされます、私は間違って何をやっているので、私はイベントのデータソースを変更します。私はより多くのパラメータを設定する必要がありますか?

答えて

1
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="1024px" 
      Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)" 
      WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" 
     Height="768px"> 
      <LocalReport ReportPath="Reports\Gestion.rdlc"> 
       <DataSources> 
        <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="Prueba" /> 
       </DataSources> 
      </LocalReport> 
     </rsweb:ReportViewer> 
     <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
     SelectMethod="obtenerTodasGestiones" 
     TypeName="SodexoSAT.Reports.DataSets.GestionesDataSet"> 
    </asp:ObjectDataSource> 
    <asp:ObjectDataSource ID="ObjectDataSource2" runat="server" 
     SelectMethod="obtenerGestionesPorTipificacion" 
     TypeName="SodexoSAT.Reports.DataSets.GestionesDataSet"> 
      <SelectParameters> 
       <asp:Parameter Name="gestion" Type="String" /> 
      </SelectParameters> 
    </asp:ObjectDataSource> 

ボタンクリックイベントがあるべき

ReportViewer1.Reset(); 
    ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("ur_2ndDatasetName", "ObjectDataSource2")); 
    ReportViewer1.LocalReport.ReportPath = @"Reports\GestionPorTipificacion.rdlc"; 
    ReportViewer1.LocalReport.Refresh(); 
関連する問題