получение вида сетки и выпадающего списка для запоминания их состояний после навигации и кнопки «назад». - PullRequest
0 голосов
/ 08 апреля 2010

У меня есть страница, заполняющая gridview, и все работает нормально.

Сетка в основном является результатом поиска .. Фильтры для которых - это количество выпадающих списков и пара текстовых полей. данные из сетки и выпадающих списков сохраняются в сеансе, а вся страница находится внутри панели обновления

когда я ухожу со страницы (как это происходит, щелкая ссылку внутри сетки), а затем нажимаю кнопку "Назад", все пипетки возвращаются к своим невыбранным значениям, и сетку нигде не видно ..

Я понимаю, что это из-за того, что скрипт-менеджер не выполняет «стандартные» обратные передачи, поэтому браузер не понимает, что произошло.

однако я установил значение EnableHistory в true в диспетчере сценариев

Есть ли простой способ запомнить это, не сбрасывая панель обновления / скриптменеджер?

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

спасибо физ

Ответы [ 2 ]

1 голос
/ 14 апреля 2010

Настройка EnableHistory только говорит ScriptManager о готовности использовать поддержку на стороне сервера. Вам все еще нужно сказать ScriptManager, как на самом деле работать с ним. Неважно, что UpdatePanel находится на MasterPage. То же самое касается ScriptManager. Пока вы можете получить нужные вам ссылки через публичное свойство / FindControl, все будет в порядке. Я делал это несколько раз с ScriptManager в MasterPage и обрабатывал событие

Вот пост в блоге Я написал около 2 лет назад. Это немного устарело, так как вам не нужен предварительный просмотр расширений, но все остальное должно быть достаточно актуальным. Когда вы находитесь в асинхронной обратной передаче и привязываете вид сетки, вы должны добавить состояние в точку истории и позволить ScriptManager сохранить его. Здесь вы можете заморозить состояние фильтров. Затем вам также необходимо иметь обработчик события Navigate. Здесь вы вытаскиваете состояние, используете его, чтобы установить элементы управления в том виде, в котором они должны быть, и привязываете свою сетку.

Примеры кода находятся на vb.net, но, пожалуйста, дайте мне знать, и я могу перейти на c #.

0 голосов
/ 14 декабря 2010

Еще один ответ, который хорошо сработал для меня:

- в виде сетки добавьте это: OnPageIndexChanging = "Gridview2_PageIndexChanging"

- в коде (я использую VB), добавьте:

Protected Sub Gridview2_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
    Session("page") = e.NewPageIndex
End Sub

- в подпрограмме Page_Load добавить:

GridView2.PageIndex = Session("page")

Это было намного проще, чем другие решения, которые я там обнаружил ...

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