ES>Приложение пишу простое. Есть одна форма (MainForm), на которой есть одно текстовое поле. Я хочу, чтобы при заполнении этого поля и нажатии на кнопку Submit, просто открывалась новая страница (result), на которой отображался текст, введённый в это поле.
ES>Что я сделал. ES>1) Средствами VS.NET создал формы MainForm.aspx и result.aspx ES>2) Установил свойство "action" формы MainForm.aspx в значение "result.aspx" ES>3) На форму MainForm.aspx добавил текстовое поле (Toolbox -> Web Forms -> TextBox) ES>4) На форму MainForm.aspx добавил кнопку Submit (Toolbox -> HTML ->Submit Button). ES>5) Скомпилировал.
ES>И тут уже воникли проблемы. Открываю в IE форму MainForm.aspx. Заполняю текстовое поле, жму Submit — открывается страница MainForm.aspx, а не result.aspx. Смотрю код HTML — точно, там написано <form ... action="MainForm.aspx">. ES>Почему? Как делать правильно?
Если форма runat=server, то action всегда (я бы сказал, что по хорошему...может какими-то грязными хаками action и подменяется) будет тот же что и адрес стреницы.
Если задача чтоит так.
Есть текстовое поле и кнопка
надо при клике на кнопку отображать значение текстового поля и не отображать само поле.
То можно сделать так.
Добавляешь
кнопку
поле
lable
На событии Click у кнопки присваиваешь
lable.Text = поле.Text;
поле.Visible = false;
Но вообще лучше читать...а если был опыт работы с asp, perl, php и.д. то лучше на время забыть о нем.
ES>Спасибо за пояснения. ES>Но что делать в более сложных случаях? Например, пользователю предоставляется форма для регистрации. Он заполняет её, жмёт Submit. И надо в этом случае направить его на другую страницу. Описанный выше приём в этом случае применять, имхо, не стоит. Нужно определять, загружена ли форма повторно, и, если это так, делать редирект? Это ведь неудобно.
Как вариант делать
Response.Redirect("/new/url/");
Кстати определить, что форма загружена повторно от клика на кнопку можно через bool IsPostBack
Здравствуйте. Пишу первое приложение ASP.NET. И у меня возникли вопросы и непонятные места.
Приложение пишу простое. Есть одна форма (MainForm), на которой есть одно текстовое поле. Я хочу, чтобы при заполнении этого поля и нажатии на кнопку Submit, просто открывалась новая страница (result), на которой отображался текст, введённый в это поле.
Что я сделал.
1) Средствами VS.NET создал формы MainForm.aspx и result.aspx
2) Установил свойство "action" формы MainForm.aspx в значение "result.aspx"
3) На форму MainForm.aspx добавил текстовое поле (Toolbox -> Web Forms -> TextBox)
4) На форму MainForm.aspx добавил кнопку Submit (Toolbox -> HTML ->Submit Button).
5) Скомпилировал.
И тут уже воникли проблемы. Открываю в IE форму MainForm.aspx. Заполняю текстовое поле, жму Submit — открывается страница MainForm.aspx, а не result.aspx. Смотрю код HTML — точно, там написано <form ... action="MainForm.aspx">.
Почему? Как делать правильно?
Здравствуйте, valmond, Вы писали:
V>Если форма runat=server, то action всегда (я бы сказал, что по хорошему...может какими-то грязными хаками action и подменяется) будет тот же что и адрес стреницы.
V>Есть текстовое поле и кнопка V>надо при клике на кнопку отображать значение текстового поля и не отображать само поле. V>То можно сделать так. V>{...}
Спасибо за пояснения.
Но что делать в более сложных случаях? Например, пользователю предоставляется форма для регистрации. Он заполняет её, жмёт Submit. И надо в этом случае направить его на другую страницу. Описанный выше приём в этом случае применять, имхо, не стоит. Нужно определять, загружена ли форма повторно, и, если это так, делать редирект? Это ведь неудобно.
Здравствуйте, valmond, Вы писали:
V>Как вариант делать V>Response.Redirect("/new/url/");
А форма, находящаяся по адресу "/new/url/" сможет достать из Request параметры, которые ввёл пользователь?
V>Кстати определить, что форма загружена повторно от клика на кнопку можно через bool IsPostBack
Спасибо.
Здравствуйте, Eugene Sh, Вы писали:
ES>Здравствуйте, valmond, Вы писали:
V>>Как вариант делать V>>Response.Redirect("/new/url/"); ES>А форма, находящаяся по адресу "/new/url/" сможет достать из Request параметры, которые ввёл пользователь?
Не...не сможет (в штатной ситуации).
А зачем? Тут "/new/url/" можно сказать, что все Ок.
А саму регистрацию (проверки и т.д.) надо сделать на странице с формой, например в событии кнопки "click".
Зачем требуется передавать параметры на "/new/url/?
V>>Кстати определить, что форма загружена повторно от клика на кнопку можно через bool IsPostBack ES>Спасибо.
Здравствуйте, valmond, Вы писали:
V>А зачем? Тут "/new/url/" можно сказать, что все Ок. V>А саму регистрацию (проверки и т.д.) надо сделать на странице с формой, например в событии кнопки "click".
Точно. Не подумал о таком варианте, как-то непривычно после php
RE: Вопрос новичка
От:
Аноним
Дата:
26.03.05 02:17
Оценка:
И тут уже воникли проблемы. Открываю в IE форму MainForm.aspx. Заполняю текстовое поле, жму Submit — открывается страница MainForm.aspx, а не result.aspx. Смотрю код HTML — точно, там написано <form ... action="MainForm.aspx">.
Почему? Как делать правильно?
Заранее спасибо.
спецификa asp.net. тег form перерендивaется. прaвильнo нaвернoе oткрывaть нoвoе oкнo при пoмoщи javascript — window.openAnatoly Lubarsky: Weblog
Здравствуйте, Eugene Sh, Вы писали:
ES>Здравствуйте. Пишу первое приложение ASP.NET. И у меня возникли вопросы и непонятные места.
ES>Приложение пишу простое. Есть одна форма (MainForm), на которой есть одно текстовое поле. Я хочу, чтобы при заполнении этого поля и нажатии на кнопку Submit, просто открывалась новая страница (result), на которой отображался текст, введённый в это поле.
ES>Что я сделал. ES>1) Средствами VS.NET создал формы MainForm.aspx и result.aspx ES>2) Установил свойство "action" формы MainForm.aspx в значение "result.aspx" ES>3) На форму MainForm.aspx добавил текстовое поле (Toolbox -> Web Forms -> TextBox) ES>4) На форму MainForm.aspx добавил кнопку Submit (Toolbox -> HTML ->Submit Button). ES>5) Скомпилировал.
ES>И тут уже воникли проблемы. Открываю в IE форму MainForm.aspx. Заполняю текстовое поле, жму Submit — открывается страница MainForm.aspx, а не result.aspx. Смотрю код HTML — точно, там написано <form ... action="MainForm.aspx">. ES>Почему? Как делать правильно?
ES>Заранее спасибо.
Это одна из порблем программистов переходящих с ASP на ASP.NET
Если хотите работать таким образом с формами, то исользуте контролы не WEB FORMS а все контролы HTML.
и удалите в форме runat=server.
ТОгда все заработает таким образом как вы хотели.
Но таким образом я не советую программировать приложения ASP.NET
Используйте все лучшее, что вам дает .NET !!ООП + событийное программирование.
А ASP к некоторому сожалению придется чатично забыть.
Здравствуйте, Eugene Sh, Вы писали:
ES>Здравствуйте, Ximan, Вы писали:
X>>Используйте все лучшее, что вам дает .NET !!ООП + событийное программирование.
ES>Я так понял, что программирование на ASP.NET сродни программированию обычных Windows Forms. Про это читал и раньше, но теперь понял, что это значит
Только в первом приближении.
Если посмотреть чуть глубже, то станет понятно, что это сильно разные вещи.