Состояние страницы кнопки возврата браузера при нажатии кнопки

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

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

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

Как я могу достичь этого?

2 ответа

Это может вам помочь, не совсем нажата кнопка назад.

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack) //check if the webpage is loaded for the first time.
        {
            ViewState["PreviousPage"] = 
        Request.UrlReferrer;//Saves the Previous page url in ViewState
        }
    }
    protected void btnBack_Click(object sender, EventArgs e)
    {
        if (ViewState["PreviousPage"] != null)  //Check if the ViewState 
                        //contains Previous page URL
        {
            Response.Redirect(ViewState["PreviousPage"].ToString());//Redirect to 
        //Previous page by retrieving the PreviousPage Url from ViewState.
        }
    }

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

Для этой цели нередко можно увидеть строку запроса, содержащую параметр UrlEncoded ReturnUrl. Если вам удастся получить все необходимое для восстановления состояния в URL, то вы можете просто перенаправить обратно на Request.QueryString["ReturnUrl"] по завершении.

Если вы хотите избежать строки запроса, вам нужно либо сформировать ее, либо сохранить необходимые данные где-нибудь отдельно от текущего запроса (например, Session) для последующего извлечения.

Другие вопросы по тегам