【问题标题】:Updating Parameters In Data Source for a Report Viewer ASP.NET C#为报表查看器 ASP.NET C# 更新数据源中的参数
【发布时间】:2013-08-26 00:40:18
【问题描述】:

我有以下控件:数据源、报表查看器和两个 Telerik RadDateTimePicker。 我的 Rad 控件的屏幕截图。

我的报告是客户报告定义 (.rdlc)。我的 SQL 2008 数据库中有一个存储过程,用于报告和数据源。

我已经通过 GUI IDE 使用 Rad Control 的参数源配置了存储过程,而不是在代码中。截图:

这里是数据源的 ASP 代码:

<asp:SqlDataSource ID="DataSourceViewWeeklySummary" runat="server" 
    ConnectionString="<%$ ConnectionStrings:SERVER %>" 
    SelectCommand="ProcedureWeeklySummary" SelectCommandType="StoredProcedure">
    <SelectParameters>
        <asp:ControlParameter ControlID="DTimePickerStartDate" Name="startDate" 
            PropertyName="SelectedDate" Type="DateTime" />
        <asp:ControlParameter ControlID="DTimePickerEndDate" DefaultValue="" 
            Name="endDate" PropertyName="SelectedDate" Type="DateTime" />
    </SelectParameters>
</asp:SqlDataSource>

我想在代码中使用我的两个日期和时间选择器更新我的数据源的参数。然后刷新报表查看器以更新报表。有人可以指出我正确的方向,以便我可以用尽可能少的代码来实现这一目标吗?提前感谢您的帮助。如果我可以列出更多信息,请告诉我。

【问题讨论】:

  • DTimePickerEndDate.SelectedDate = 新日期(2013,08,28)

标签: c# asp.net sql-server stored-procedures reporting-services


【解决方案1】:

在 DTP 控件的SelectedDateChanged 事件中,您需要执行以下操作:StartDateVariable = e.NewDate

然后在您报告的ReportRefresh 事件中,您需要像这样更新参数:DataSource.SelectParameters[0].DefaultValue = StartDateVariable;

确保在离开ReportRefresh 事件之前调用DataBind()(除非您在其他地方处理该事件。

此外,您可能还需要进行一些类型转换/转换。如果我没记错DefaultValue 属性是一个字符串,那么您需要将变量转换为字符串,或者将新日期转换为字符串。

以下将是一个“完整”示例。

        protected void DTimePickerStartDate_SelectedDateChanged(object sender, Telerik.Web.UI.Calendar.SelectedDateChangedEventArgs e)
    {
        StartDate = Convert.ToString(e.NewDate);
    }

    protected void DTimePickerEndDate_SelectedDateChanged(object sender, Telerik.Web.UI.Calendar.SelectedDateChangedEventArgs e)
    {
        EndDate = Convert.ToString(e.NewDate);
    }

    protected void ReportViewer1_ReportRefresh(object sender, System.ComponentModel.CancelEventArgs e)
    {
        DataSourceViewWeeklySummary.SelectParameters[0].DefaultValue = StartDate;
        DataSourceViewWeeklySummary.SelectParameters[1].DefaultValue = EndDate;

        DataSourceViewWeeklySummary.DataBind();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多