2013-08-26 30 views
1

我有以下控件:数据源,报表查看器和两个Telerik RadDateTimePicker。 我的Rad Controls看起来像的屏幕截图。更新报表查看器的数据源中的参数ASP.NET C#

Rad Controls

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

我已经配置存储过程与Rad控件的参数源,通过GUI IDE,而不是在代码中。那截屏:

DS Config

下面是数据源的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> 

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

+0

DTimePickerEndDat e.SelectedDate =新日期(2013,08,28) –

回答

1

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

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

确保您拨打DataBind()你离开ReportRefresh事件之前(除非你正在处理其他地方。

此外,有可能会被一些类型转换/转换,你将不得不这样做。如果我没有记错该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(); 
    } 
相关问题