Обновите ссылки на главной странице данными с дочерней страницы

У меня есть меню ссылок на отчеты на моей главной странице. Мне нужно добавить идентификатор в конце каждого, когда пользователь изменяет значение на дочерней странице. Какой хороший способ сделать это?

ОБНОВЛЕНИЕ: я должен был упомянуть, что дочернее обновление происходит внутри UpdatePanel, то есть главная страница не перезагружается, когда происходит изменение.

11.12.2008 21:09:27
2 ОТВЕТА
РЕШЕНИЕ

В ответ на ваше ОБНОВЛЕНИЕ:

Обновленная панель может записывать идентификатор в скрытое поле, а события меню могут искать эти скрытые поля в Request.Form["fieldName"].

Обратите внимание, что вы не fieldName.Textдолжны этого делать, потому что ASP.NET плохо возвращает правильное значение для полей, которые были AJAXed.

0
12.12.2008 07:14:42

MasterPage действительно дочерний элемент управления страницы, которой он управляет. Вы можете управлять MasterPage, как и любой другой элемент управления на вашей странице (почти). Все, что вам нужно сделать, это получить ссылку на него.

Вы добавляете свойство в код вашей MasterPage, чтобы его код мог выглядеть примерно так:

public partial class _default : System.Web.UI.MasterPage
{
    protected string m_myString = string.Empty;
    public string myString
    {
        get { return m_myString; }
        set { m_myString = value; }
    }
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

Затем вы должны привести свойство this.Master к вашей MasterPage.

public partial class index : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // Cast here to get access to your MasterPage
        _default x = (_default)this.Master;
        x.myString = "foo";
    }
}
2
12.12.2008 03:16:44
Смотрите обновление, которое я только что добавил к исходной проблеме. Я бы обычно использовал ваш метод, но частичное обновление страницы усложняет ситуацию.
gfrizzle 11.12.2008 21:29:13
У вас есть 2 варианта, которые я вижу. 1. Обновите идентификаторы, используя JavaScript на стороне клиента. 2. Обновите идентификаторы, как указано выше, и поместите эту область MasterPage во вторую панель обновления.
jrcs3 11.12.2008 21:34:57
Обновится ли панель обновления на главной странице, если ребенок обновляется? Я попробовал быстрый тест, но он не сработал, но я мог что-то испортить.
gfrizzle 11.12.2008 21:51:08