| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка под ASP.NET > Как получить введенные юзером данные |
| Автор: Competitor 24.1.2007, 15:06 |
| Открываю страничку. На ней находится input. Юзер вводит данные. Как со старой странички узнать, что именно он ввел в новой? |
| Автор: vladsch 24.1.2007, 15:48 |
| Что подразумевается под старой и новой страницами? Если подразумевается что юзер вводит что-то, жмет к примеру Submit и обработка идёт на другой странице (например, у кнопки выставлен PostBackUrl на другую страницу), то можно использовать PreviousPage.FindControl или Request.Form |
| Автор: Competitor 24.1.2007, 15:56 |
| Нужно изменить элемент другой странички. Пусть текущая страничка default.aspx. Мне же нужно изменить значение элемента myElement в странички otherPage.aspx. |
| Автор: vladsch 24.1.2007, 16:05 | ||
А смысл всего этого? Когда ты находишься на страничке default.aspx, то страницы otherPage.aspx нет в памяти, контролы её не созданы. Так что изменять даже не чего Изменить ты сможешь только если будешь на otherPage.aspx. Если очень нужно такое поведение, то запоминай на default.aspx изменения, которые нужно внести в контрол на otherPage.aspx (в сессии, в базе или где-то ещё) и когда будешь на otherPage.aspx изменяй этот контрол P.S. Всё что я тут сказал верно только в том случае если эти две страницы не живут одновременно в разных фреймах |
| Автор: Competitor 24.1.2007, 16:19 |
| vladsch, сперва была загружена страничка MainPage.aspx, так что все ее элементы созданы. Далее юзер нажал на кнопку Button и открылась другая страничка Comment.aspx. В ней пользователь ввел: "Ваш сайт попахивает фикальными выделениями". И закрыл это окно. И мы опять оказались на исходной MainPage.aspx. Как мне теперь узнать, что написал юзер на страничке Comment.aspx. Я так понимаю, нуно со странички Comment.aspx передать инфу на MainPage.aspx. Так вот как это сделать. Допустим я хочу присвоить введенные данные элементу myElement. |
| Автор: vladsch 24.1.2007, 16:46 | ||||
| Ок, понял проблему. Решается способами, которые я упомянул в первом посте Пример: 1. PreviousPage Значит так, находимся на Comment.aspx На этой странице есть контрол TextBox1 для комментов и кнопка для подтверждения комментов У этой кнопки выставим параметр PostBackUrl в "MainPage.aspx" На этой странице всё На странице MainPage.aspx пусть будет лейбл, который будет отображать коммент, если был выполнен кросс постбек. Обработчик Page_Load
Здесь можно сделать улучшение, типа можно принимать PreviousPage только определлённого типа Ну это ты сам в мсдн посмотри 2. Request.Form Входные условия те же На MainPage.aspx обработчик Page_Load
Этот вариант, мне кажется, будет работать не всегда, так как ASP может заменить ID на что-то другое (не даром у контролов есть свойство ClientID) |
| Автор: Pankon 7.3.2007, 17:15 | ||||
Competitor, не умеешь(читай не можешь) прислушиваться к советам? Что ж, даю наводящие примеры: MainPage.aspx
Наслаждайся своим сайтом ПС1. А что такое - Флудираз? ПС2. Попытайся подумать в следующий раз сам..... , когда будешь понижать рейтинг. Ну или поиск в сети.... |
| Автор: Fighter 16.12.2009, 19:00 |
| И что-то все равно ничего не помогает. PreviousPage всегда NULL. |
| Автор: Fighter 17.12.2009, 13:36 |
| UP |
| Автор: tol05 17.12.2009, 14:24 | ||
| PreviousPage будет не null если делать переход через Server.Transfer или свойство кнопок PostBackUrl Response.Redirect("Default2.aspx") тоже не даст PreviousPage
посмотрите в браузере чем отличается конечная html разметка для перехода на Default2.aspx |
| Автор: Fighter 18.12.2009, 01:17 |
| Ага, теперь понятно, все работает. Но, возникает следующая проблема, а что если мне необходимо при нажатии на кнопку написать еще обработчик, и в зависимости от каких-то определенных параметров переход будет осуществляться либо на одну страничку либо на другую. |
| Автор: tol05 18.12.2009, 09:40 |
| Не используйте PostBackUrl, а напишите обычный серверный обработчик кнопки. В нем, в зависимости от условий, выполняйте или Transfer на ту или иную страницу. При этом в браузере правда урл останется тем же, что был на исходной странице, или Redirect на ту или иную страницу. Недостаток - лишний вызов с клиента Или напишите клиенсткий javascript, если условия выбора могут быть вычислены на клиенте (не будет лишнего вызова) и повесьте его на кнопку. вариантов много |