Реализация функции кнопки «Назад» в asp.net

Мне нужно реализовать кнопку «Назад» для моего веб-сайта asp.net. Я могу использовать метод javascript для достижения моего требования. Но с помощью этого метода иногда мне нужно несколько раз нажать кнопку «Назад», чтобы вернуться на предыдущую страницу .Это может быть потому, что мы используем вкладки jquery на нашем веб-сайте. Чтобы сосредоточиться на определенной вкладке, кроме 1-й вкладки при загрузке страницы, я использую Page.ClientScript.RegisterStartupScript(....). Поэтому я не могу принять пользователь вернется на предыдущую страницу одним щелчком мыши.

Я также пробовал использовать методы asp.net-C#, упомянутые в следующей ссылке. http://www.dotnetcurry.com/ShowArticle.aspx?ID=89 Я могу вернуться на предыдущую страницу, но ее состояние теряется. Не мог бы кто-нибудь помочь мне в выполнении моего требования?

Подробности:
У меня есть page1.aspx, page2.aspx (которая содержит вкладки просмотра/редактирования jquery).

В page1.aspx есть 2 кнопки (Просмотр, Изменить). Если я нажму кнопку просмотра, я перейду на вкладку просмотра page2.aspx (1-я вкладка), а если я нажму кнопку редактирования, я должен перейти на страницу 2. aspx с загруженной вкладкой «Правка». Обе вкладки «Просмотр/редактирование» содержат кнопку «Назад».

Также с вкладки «Вид» я могу перейти на вкладку «Редактировать», нажав на другую кнопку «Редактировать», присутствующую в ней.

Спасибо.


person kranthi    schedule 13.01.2010    source источник
comment
Можете ли вы описать свою веб-форму более подробно? Какая связь между вкладками? Например. Это форма с несколькими вкладками (без необходимости постинга между вкладками) или что-то еще?   -  person o.k.w    schedule 13.01.2010
comment
На самом деле у меня есть page1.aspx, page2.aspx (которая содержит вкладки просмотра/редактирования jquery). На странице1.aspx есть 2 кнопки (Просмотр, Изменить). Если я нажимаю кнопку просмотра, я перехожу на вкладку просмотра page2.aspx. (1-я вкладка), и если я нажму кнопку редактирования, она должна привести меня к page2.aspx с загруженной вкладкой «Правка». Обе вкладки «Просмотр/редактирование» содержат кнопку «Назад». Также с вкладки «Просмотр» я могу перейти на вкладку «Правка», нажав на другой кнопке «Редактировать», присутствующей в нем.   -  person kranthi    schedule 13.01.2010
comment
Может быть, вам лучше использовать ‹asp:wizard /› и создать ссылки на этапы мастера в стиле вкладок.   -  person Filburt    schedule 13.01.2010


Ответы (2)


Методы, которые вы рассмотрели в своем вопросе, по сути, доступны вам.
Вы можете либо
1. Предоставьте ссылку, которая использует javascript, чтобы заставить клиента вернуться на страницу.
2. Предоставьте ссылку который отправляет обратно на сервер, который перенаправляет вас обратно на страницу.

Я не уверен, почему jquery в вашей веб-форме, как описано в вашем вопросе, заставляет вас нажимать больше, чем один раз, чтобы вернуться. Если вы знаете, что для возврата всегда потребуется 2 клика, вы можете попробовать этот метод:

javascript: window.history.go(-2)

Когда вы используете метод обратной передачи/перенаправления, вы всегда будете использовать метод http GET для получения возвращаемой страницы. Если вы хотите сохранить состояние, вам придется делать это вручную, то есть сохранять значения при выходе со страницы где-то, например, в сеансе или во временной базе данных, а при возврате на страницу во время загрузки страницы проверьте, есть ли у пользователя эти данные. сохраненные значения и предварительно заполнить их.

person Andy Rose    schedule 13.01.2010
comment
Привет всем, Большое спасибо за ценные предложения. Я попробую варианты, которые вы все дали. Еще раз спасибо. - person kranthi; 14.01.2010

Я сделал что-то подобное (хотя и с автоматическим перенаправлением), и мне пришлось отслеживать количество страниц, чтобы вернуться в моем ViewState (или сеансе, если вы переходите со страницы на страницу):

код программной части

public void Page_Load()
{
    Session["pagesToGoBack"] = ((int)Session["pagesToGoBack"])++;
}

наценка:

<input type="button" value="Back" onclick='javascript:history.go(<%= Session["pagesToGoBack"] %>);' />

Будьте осторожны, чтобы сбросить переменную сеанса, когда это необходимо.

Заставил меня чувствовать себя немного грязным, но это сработало :)

person Veli Gebrev    schedule 13.01.2010