Элементы управления главной страницы сбрасываются - PullRequest
0 голосов
/ 30 июля 2009

Я использую главную страницу и дочерние страницы в приложении asp.net. У меня есть выпадающий список и древовидная структура (которая использует sitemapdatasource) на главной странице. Когда я нажимаю на любой узел дерева, страница перенаправляется на дочернюю страницу. Проблема заключается в том, что если выбрать какое-либо значение в выпадающем списке и нажать на узел дерева, выбранное значение должно быть назначено в поле ext на дочерней странице. Это не работает.. master page_load () выполняется после дочернего page_load (), это из-за этого?

Помоги мне в этом.

Спасибо Рупа

1 Ответ

2 голосов
/ 31 июля 2009

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

Исходя из этого, я думаю, что в основном происходит то, что ваша древовидная структура отображает простые старые ссылки html (т.е. <a href='http://stackoverflow.com'>...). При нажатии на них ваш браузер выполняет запрос get для второй дочерней страницы. По умолчанию данные с первой дочерней страницы не передаются на вторую.

Существуют различные способы изменить это поведение. Сначала вы должны установить для свойства AutoPostBack значение true и событие дескриптора SelectedIndexChanged в раскрывающемся списке. В этом случае вы можете сохранить значение раскрывающегося списка, чтобы его можно было восстановить позже.

Самый простой способ сохранить это значение, вероятно, поместить его в сеанс.

Session["myvar"] = dropdown.SelectedIndex;

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

if (!IsPostBack && Session["myvar"] != null) 
    dropdown.SelectedIndex = (int)Session["myvar"];

Другой вариант - добавить значение в строку запроса каждого URL-адреса в древовидном представлении.

...