Я бы предложил перенести ваши промежуточные даты и отправить кнопку в пользовательский элемент управления.Затем вы можете поместить это в каждый отчет, отобразить и подключить измененные события к своему элементу управления и предоставить свойства для ваших текстовых полей, которые обновляются в отчете.
В Visual Studio создайте пользовательский элемент управления.Если вы не знаете, как это сделать, попробуйте эту ссылку.
Заполните пользовательский элемент управления текстовыми полями.Примерно так:
<div>
<asp:Label ID="FromDateLabel" Text="From:" AssociatedControlID="FromDateTextBox" runat="server" />
<asp:TextBox ID="FromDateTextBox" runat="server" />
<asp:Label ID="ToDateLabel" Text="To:" AssociatedControlID="ToDateTextBox" runat="server" />
<asp:TextBox ID="ToDateTextBox" runat="server" />
<asp:Button ID="UpdateButton" Text="Update" runat="server"
onclick="UpdateButton_Click" />
</div>
И код для этого элемента управления.Вам нужно будет предоставить событие и два свойства, которые могут выглядеть следующим образом:
public partial class ReportDateControl : System.Web.UI.UserControl
{
public event EventHandler UpdateReport;
public string FromDate
{
get { return this.FromDateTextBox.Text; }
set { this.FromDateTextBox.Text = value; }
}
public string ToDate
{
get { return this.ToDateTextBox.Text; }
set { this.ToDateTextBox.Text = value; }
}
protected void UpdateButton_Click(object sender, EventArgs e)
{
if (UpdateReport != null)
{
UpdateReport(this, EventArgs.Empty);
}
}
}
На вашей странице .aspx вам нужно зарегистрировать элемент управления, который может выглядеть примерно так:
<%@ Register Src="~/Controls/ReportDateControl.ascx" TagPrefix="myapp" TagName="ReportDateControl" %>
А затем фактически поместите его на страницу:
<myapp:ReportDateControl id="ReportDateControl"
runat="server"
OnUpdateReport="ReportDateControl_UpdateReport" />
А затем подключите код для обработки событий обновления:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ReportDateControl_UpdateReport(object sender, EventArgs e)
{
Controls.ReportDateControl control = (Controls.ReportDateControl)sender;
string fromDate = control.FromDate;
string toDate = control.ToDate;
}
}
Измениимена и форматирование, где это уместно, но это должно дать вам хорошую идею.