C# 正在为报表查看器ASP.NET C更新数据源中的参数#
我有以下控件:数据源、报表查看器和两个Telerik RadDateTimePicker。 我的Rad控件的屏幕截图 我的报告是一个客户端报告定义(.rdlc)。我在SQL 2008数据库中有一个存储过程,用于报告和数据源 我已经通过GUI IDE,而不是代码,使用Rad控件的参数源配置了存储过程。屏幕截图: 以下是数据源的ASP代码:C# 正在为报表查看器ASP.NET C更新数据源中的参数#,c#,asp.net,sql-server,stored-procedures,reporting-services,C#,Asp.net,Sql Server,Stored Procedures,Reporting Services,我有以下控件:数据源、报表查看器和两个Telerik RadDateTimePicker。 我的Rad控件的屏幕截图 我的报告是一个客户端报告定义(.rdlc)。我在SQL 2008数据库中有一个存储过程,用于报告和数据源 我已经通过GUI IDE,而不是代码,使用Rad控件的参数源配置了存储过程。屏幕截图: 以下是数据源的ASP代码: <asp:SqlDataSource ID="DataSourceViewWeeklySummary" runat="server" Con
<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>
我希望在代码中使用两个日期和时间选择器来更新数据源的参数。然后刷新报表查看器以更新报表。有没有人能给我指出正确的方向,这样我就可以用尽可能少的代码来实现这一点?提前感谢您的帮助。如果我可以列出更多信息,请让我也知道。在DTP控件的
SelectedDateChanged
事件中,您需要执行以下操作:StartDateVariable=e.NewDate
然后在报告的ReportRefresh
事件中,您需要更新如下参数:DataSource.SelectParameters[0]。DefaultValue=StartDateVariable代码>
确保在离开ReportRefresh
事件之前调用DataBind()
(除非您在其他地方处理该事件)
此外,您可能需要执行一些类型转换/转换。如果我没有弄错,DefaultValue
属性是字符串,那么您需要将变量转换为字符串,或者将新日期转换为字符串
下面是一个“完整”的例子
在DTP控件的SelectedDateChanged
事件中,您需要执行以下操作:StartDateVariable=e.NewDate
然后在报告的ReportRefresh
事件中,您需要更新如下参数:DataSource.SelectParameters[0]。DefaultValue=StartDateVariable;
确保在离开ReportRefresh
事件之前调用DataBind()
(除非您在其他地方处理该事件)
此外,您可能需要执行一些类型转换/转换。如果我没有弄错,DefaultValue
属性是字符串,那么您需要将变量转换为字符串,或者将新日期转换为字符串
下面是一个“完整”的例子
DTimePickerEndDate.SelectedDate=新日期(2013,08,28)DTimePickerEndDate.SelectedDate=新日期(2013,08,28)
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();
}