|
HOT TIP #2 Передача значений между веб-формами в ASP.NET
|
|||
---|---|---|---|
#18+
Поиски возможных вариантов передачи значений между страницами привели к переводу ещё одной статьи. HOT TIP №2 Передача значений между веб-формами в ASP.NET ЯЗЫК: C# ВЕРСИИ ASP.NET: 1.0 | 1.1 АВТОР: Bipin Joshi, http://www.dotnetbips.com/ ПЕРЕВОД: hDrummer Вступление Веб-формы ASP.NET предлагают прекрасную событийно-управляемую программную модель для разработчиков. В целом она упрощает дизайн вашего приложения, но и сама по себе порождает некоторые проблемы. Например, в традиционном ASP можно было легко передавать значения от одной страницы к другой странице с использованием метода POST. Этим подходом нельзя воспользоваться в ASP.NET, если вы хотите использовать модель веб-форм (т.е. форма и элементы управления обрабатываются на стороне сервера). Однако есть несколько подходов, с помощью которых можно преодолеть эти ограничения. Например, значения можно передавать в строке запроса, используя сессионные переменные или с использованием метода Server.Transfer. Использование строк запроса Механизм использования строк запроса для передачи значений от страницы к странице не нов. Основным преимуществом этого метода является его простота. Недостатками же являются видимость значений передаваемых переменных в адресной строке и отсутствие возможности передачи таким образом объектов. Наилучшее применение этот метод может получить в случае необходимости передачи небольшого числа значений, которые нет необходимости скрывать. Чтобы воплотить этот метод в жизнь, нужно выполнить следующие шаги: - создать веб-форму с элементами управления; - создать кнопку для отсылки формы на сервер (т.н. postback’a); - в обработчике события onClick создать строку, содержащую URL для перехода; - добавить значения из элементов управления к нашему URL’у как параметры в строке запроса; - выполнить Response.Redirect к другой веб-форме по нашему URL. Следующий кусочек кода покажет, как это работает: Исходная Web Form’a (передача параметров) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Web Form’a, на которую уходим (приём и обработка параметров) Код: plaintext 1. 2. 3. 4. 5.
Использование переменных сессии Это ещё один способ передачи значений от страницы к странице. В этом случае мы сохраняем значения в сессионных переменных и получаем к ним доступ из другой веб-формы. Однако, как мы знаем, сохранение большого объёма данных на сервере может привести к его перегрузке (т.е. более медленной работе). Поэтому данный способ нужно применять с осторожностью. Кроме того, необходимы некоторые действия с вашей стороны, для того, чтобы уже ненужные переменные, занимающие много памяти, были очищены. Типичная последовательность действий выглядит так: - создать веб-форму с элементами управления; - создать кнопку для отсылки формы на сервер (т.н. postback’a); - в обработчике события onClick добавить сессионные переменные и установить в некоторые значения; - выполнить Response.Redirect к другой веб-форме; -в этой «другой» веб-форме взять значения из переменных сессии и очистить их при необходимости. Следующий код продемонстрирует сказанное в действии: Исходная Web Form’a (передача параметров) Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Web Form’a, на которую уходим (приём, обработка и очистка параметров) Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Использование Server.Transfer Это довольно сложный способ передачи значений между страницами. Для передачи значений в другие страницы нужно создать дополнительные свойства класса исходной страницы. Этот метод потребует от вас дополнительного кодирования, но эти усилия будут стоить того. В целом, этот подход более объектно-оринтирован, чем предыдущие методы. Весь процесс выглядит так: - создать веб-форму с элементами управления; - создать для свойства процедуру Get, которая будет возвращать значения элементов управления; - создать кнопку для отсылки формы на сервер (т.н. postback’a); - в обработчике события onClick вызвать метод Server.Transfer, который передаст выполнение указанной форме; - во второй форме можно получить ссылку на исходную форму с использованием свойства Context.Handler. Затем можно использовать созданные свойства для получения значений, находящихся в элементах управления формы. Теперь код: Исходная Web Form’a (передача параметров) Добавим следующие свойства к веб-форме: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Теперь выполним Server.Transfer. Код: plaintext 1. 2. 3. 4.
Web Form’a, на которую уходим (приём, обработка параметров) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Итого В этой статтье мы рассмотрели три способа передачи данных между двумя ASP.NET веб-страницами – с помощью строки запроса, сессионных переменных и метода Server.Transfer. Также рассмотрели плюсы и минусы всех подходов. Надеюсь, что эта статья окажется вам полезной. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2003, 15:31 |
|
HOT TIP #2 Передача значений между веб-формами в ASP.NET
|
|||
---|---|---|---|
#18+
Порадовала помощь по классу Context: The Context type supports the .NET Framework infrastructure and is not intended to be used directly from your code. Просто и ясно. И никаких тебе вопросов :( ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2003, 16:05 |
|
|
start [/forum/topic.php?fid=18&fpage=1042&tid=1396111]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 167ms |
0 / 0 |