Включите кнопку браузера назад для управления репитером с панелью обновления в asp.net c # с главной страницей

1

У меня есть страница Searchbook.aspx, у которой есть 3 выпадающих списка и один элемент управления ретранслятора, у которых есть кнопка, когда я перехожу на другую страницу с помощью этой кнопки на другую страницу. Когда я нажимаю кнопку "Назад" первой страницы браузера, вы получаете значения по умолчанию вместо найденных значений. Я хочу восстановить найденные значения.

  • 0
    Пожалуйста, помогите мне..
  • 0
    Вы видели это? stackoverflow.com/a/9228298/217757
Показать ещё 2 комментария
Теги:
asp.net-ajax

2 ответа

0

Если вы хотите восстановить найденные значения на кнопке браузера, то есть два пути решения.

  1. Сохраняйте значения фильтров, выбранные пользователем в ViewState. => В этом случае всегда связывайте данные, реализуя условия, которые возникают из viewstate.

  2. Или сохраните значения для данных фильтра в строке запроса. => В этом случае, когда пользователь выбрал критерии фильтра, поместите значения в строку запроса и привяжите данные, поставив условие со значением, полученным из строки запроса URL.

Оба вышеуказанных процесса могут решить вашу цель, но вторая будет эффективной и быстрой, так как значения в Viewstate будут замедлять страницу.

Пожалуйста, дайте мне знать, если я не смогу правильно вас решить.

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

Viewstate аналогичен использованию переменной Session, см. Ниже код.

  1. Добавить значение в viewstate

    ViewState.Add("filter1", DropDownList1.SelectedValue);

  2. Получить значение из viewstate

    string getvalue = ViewState ["filter1"]. ToString();

Поэтому, когда после выбора критериев фильтра, когда вы нажимаете кнопку "Отправить кнопку", заданное значение в режиме просмотра и на загрузке страницы получает одинаковое значение и связывает ваш элемент управления с использованием этих значений.

  • 0
    Можете ли вы привести пример
  • 0
    @PrateekSingla Я обновил свой ответ с примером кода, как вам требуется. Я пропустил просмотр панели обновления, так что в вашем случае viewstate будет работать. Вы также можете использовать сессию, если вы не хотите использовать viewstate. Логика будет такой же, только носитель значений фильтра - ваш выбор.
Показать ещё 2 комментария
0

Вы можете включить историю браузера для запросов панели обновления, установив переключатель EnableHistory=true в ScriptManager.

Вот пример кода, который может помочь...

<asp:ScriptManager ID="scm" runat="server"
       EnableHistory="true"
       OnNavigate="scm_Navigate"
       />
    <div>
    <asp:Button ID="btnSubmit" runat="server" Text="Click Me!"
            onclick="btnSubmit_Click" />
    <asp:UpdatePanel ID="upl" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="lblTime" runat="server" />
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
    </Triggers>
    </asp:UpdatePanel>

Вот источник: http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/06/15/asp-net-podcast-show-116-using-the-history-functionality-with-the -Asp-нетто-Ajax-UpdatePanel-в-нетто-3-5-сервис-пак-1-бета-1.aspx

UPDATE Вы также можете использовать этот метод для добавления точки истории в браузере. http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.addhistorypoint(v=vs.100).aspx

Возможно, этот ответ на SOF также может помочь... qaru.site/questions/1279412/...

UPDATE 2 Это сообщение в блоге от Scott Gu суммирует все это... http://weblogs.asp.net/scottgu/Tip_2F00_Trick_3A00_-Enabling-Back_2F00_Forward_2D00_Button-Support-for-ASP.NET-AJAX-UpdatePanel

  • 0
    Это попробовано, но не работает, потому что мой менеджер сценариев находится на главной странице
  • 0
    Тим Шмельтер и Навин Пожалуйста, помогите мне, я поражен здесь
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню