C # - Перезагрузить вкладки с главной страницы - PullRequest
0 голосов
/ 07 июня 2011

У меня есть текстовые поля FromDate и ToDate и кнопка отправки на моей главной странице. У меня есть 4 вкладки со ссылками на 4 разных URL, на которых отображаются различные отчеты.

Теперь, при изменении Даты и нажатии кнопки «Отправить», могу ли я обновлять / перезагружать отчеты (вкладки) в зависимости от изменения даты?

Заранее большое спасибо:)

Ответы [ 2 ]

2 голосов
/ 08 июня 2011

Я бы предложил перенести ваши промежуточные даты и отправить кнопку в пользовательский элемент управления.Затем вы можете поместить это в каждый отчет, отобразить и подключить измененные события к своему элементу управления и предоставить свойства для ваших текстовых полей, которые обновляются в отчете.

В 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;

    }
}

Измениимена и форматирование, где это уместно, но это должно дать вам хорошую идею.

0 голосов
/ 08 июня 2011

Кроме того, вы можете открыть элементы управления Date на главной странице и получить к ним доступ через свойство Page.Master.Вам нужно привести к конкретному типу вашей главной страницы, чтобы получить ее свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...