Где я должен заполнить элемент управления на основе выбранного значения из главной страницы - PullRequest
0 голосов
/ 26 января 2011

У меня следующая ситуация:

  • Главная страница содержит древовидный элемент управления
  • Страница использует предыдущую главную страницу
  • Элемент управления заполняет свои элементы на основе выбранногоузел в дереве (который находится на главной странице)

Вопрос заключается в следующем: где я должен заполнить элемент управления на основе выбранного значения на главной странице?

Проблема заключается в том, чтособытие Load главной страницы запускается после события Load страницы, поэтому я не смог обработать выбранный узел из главной страницы в событии Load страницы.

Я также пытался использовать событие PreRender на странице, но элемент управления не заполнен true.

Любая помощь!

Ответы [ 2 ]

0 голосов
/ 26 января 2011

Установите NavigateUrl на страницу, которая должна быть загружена, и передайте значение выбранного узла в виде строки запроса.

В приведенном ниже примере я подписался на событие OnTreeNodeDataBound в TreeView. В обработчике событий я настроил NavigateUrl, добавив строку запроса (в данном случае значение выбранного узла).

например:

Разметка TreeView на главной странице:

<asp:TreeView ID='TreeView1' runat='server' DataSourceID='SiteMapDataSource1' OnTreeNodeDataBound='HandleOnTreeViewTreeNodeDataBound'>        
</asp:TreeView>

код-за:

public void HandleOnTreeViewTreeNodeDataBound(Object sender, TreeNodeEventArgs e)
{
        String newUrl = String.Format("{0}?nodeValue={1}", e.Node.NavigateUrl, e.Node.Value);
        e.Node.NavigateUrl = newUrl;
}
0 голосов
/ 26 января 2011

Исходя из вашего вопроса, я предполагаю, что вы создаете / привязываете список в событии загрузки главной страницы, а затем читаете выбранный индекс / значение в событии загрузки дочерних страниц.

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

...