Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> И снова ViewState, EnableViewState="false" не работает 
V
    Опции темы
Pankon
Дата 19.6.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 2
Всего: 5



Код

<%@ Page Language="C#" EnableViewState="false"  %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server" EnableViewState="false">
    <title></title>
</head>
<body runat="server" enableviewstate = "false">
    <form id="form1" runat="server" EnableViewState="false" >
        <asp:TextBox ID="TextBox1" runat="server" EnableViewState="false" ></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" EnableViewState="false"/>
    </form>
</body>
</html>

Я набираю в текстовом поле текст, щелкаю по кнопке. После перегрузки страницы, набранный текст в текстовом поле остается.....

А как у Вас работает эта страница?
PM MAIL   Вверх
Idsa
Дата 19.6.2008, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Pankon, это не ViewState. Текст TextBox передается через Post-запрос при постбэке и заносится в серверный объект при обработке события ProcessPostData.

Это сообщение отредактировал(а) Idsa - 19.6.2008, 20:33


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Pankon
Дата 19.6.2008, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 2
Всего: 5



Цитата(Idsa @  19.6.2008,  20:30 Найти цитируемый пост)
ProcessPostData
 Хм, не знал....


Idsa,  спасибо.. (плюс за ответ в три минуты smile )
PM MAIL   Вверх
boris__
Дата 4.9.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 24.2.2008

Репутация: нет
Всего: нет



...можно спросить в продолжению темы

а как все такие сделать чтобы текст текстбокса не восстанавливался, а принимал только значение по умолчанию?
PM MAIL   Вверх
PashaPash
Дата 6.9.2008, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 7
Всего: 49



boris__, вручную очищать его его в PreRender.


--------------------
PM MAIL WWW   Вверх
Idsa
Дата 6.9.2008, 05:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(PashaPash @  6.9.2008,  05:35 Найти цитируемый пост)
вручную очищать его его в PreRender. 

Слишком уж затратное решение. Я бы посоветовал воспользоваться паттерном "Redirect after Post": http://en.wikipedia.org/wiki/Post/Redirect/Get
Суть в том, что после выполнения всех важный действия (того же обработчика щелчка по кнопке, например) мы делаем Redirect на эту же страницу (только на этот раз в заголовке не будет Post-данных, поэтому IsPostBack будет равен fаlse). Тогда все элементы управления примут значения из разметки.
Вообще у этого паттерна немного другое предназначение, но в ASP.NET я иногда использую его именно в таком ключе.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
PashaPash
Дата 6.9.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 7
Всего: 49



Idsa, сбросить значение одного текстбокса - это затратно? А средиректить на ту же страницу, обработать 2 запроса вместо одного - это экономно? И значения остальных контролов (если они на странице потом появятся) при этом сохранятся магическим образом?


--------------------
PM MAIL WWW   Вверх
Idsa
Дата 6.9.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(PashaPash @  6.9.2008,  15:34 Найти цитируемый пост)
Idsa, сбросить значение одного текстбокса - это затратно?

Вряд ли на странице один текстбокс...

Цитата(PashaPash @  6.9.2008,  15:34 Найти цитируемый пост)
обработать 2 запроса вместо одного - это экономно? 

Не спорю, что у этого способа есть недостатки. Тем не менее для обычного сайта сверхнагрузкой это не станет, но зато сэкономит время на разработку. Да и этот способ не будет вызывать проблем при добавлении новых контролов. А то ведь так можно и забыть дописать в PreRender очистку.

Цитата(PashaPash @  6.9.2008,  15:34 Найти цитируемый пост)
И значения остальных контролов (если они на странице потом появятся) при этом сохранятся магическим образом? 

Я так понял, что нужно очистить значения всех контролов на значения по умолчаю. Просто сам сталкивался с такой ситуацией, поэтому так и понял. Автор нас рассудит.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
PashaPash
Дата 6.9.2008, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 7
Всего: 49



Idsa, автор сам не знает чего хочет smile

Раз уж упомянул о "Redirect after Post" - рассказывай об особенностях в asp.net. 
Цитата(Idsa @  6.9.2008,  11:51 Найти цитируемый пост)
Вряд ли на странице один текстбокс...

Просто текстбоксы сами по-себе редко стоят. Если они часть FormView - то очистка всех контролов вообще сводится к одному вызову ChangeMode. Ну и вообще - кто знает что там у автора творится. Может настоящее приложение, а может - hello world - вывести текст в label и очистить text box.
Цитата(Idsa @  6.9.2008,  11:51 Найти цитируемый пост)
А то ведь так можно и забыть дописать в PreRender очистку.

Так можно и редирект забыть дописать. Если уж рассказывать про редирект, то с примерами, и с оговоркой про try/catch.


--------------------
PM MAIL WWW   Вверх
boris__
Дата 6.9.2008, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 24.2.2008

Репутация: нет
Всего: нет



ой, сколько ответов сразу smile 

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

спасибо за ответы, только второй способ чего- то я не понял...изучаю

можно и еще один вопрос, какая будет начинка для пререндер
protected void Page_PreRender(object sender, EventArgs e)
{
  . . .
}


Это сообщение отредактировал(а) boris__ - 6.9.2008, 18:12
PM MAIL   Вверх
boris__
Дата 7.9.2008, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 24.2.2008

Репутация: нет
Всего: нет



ну вот не пойму я....когда обсуждается то, знает ли посетитель точно что ему надо или нет - то каждый эксперт вставляет свой осудительный комент обязательно.... а дальше отвечать на вопрос уже интереса нет никакого
PM MAIL   Вверх
wotker
Дата 8.9.2008, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: 1
Всего: 5



Цитата

можно и еще один вопрос, какая будет начинка для пререндер


Код

protected void Page_PreRender(object sender, EventArgs e)
{
  textBox1.Text =  "default falue";
}

--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
boris__
Дата 8.9.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 24.2.2008

Репутация: нет
Всего: нет



бррр.....не понял

мне нужно так чтобы текстбокс брал значение из aspx резметки
можно конечно руками устанавливать, но я хотел чтобы у апликации был более профессиональный виде, т.е. чтобы можно было в VS в окне пропертис менять значение и всё
PM MAIL   Вверх
PashaPash
Дата 8.9.2008, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 7
Всего: 49



Цитата(boris__ @  8.9.2008,  14:10 Найти цитируемый пост)
мне нужно так чтобы текстбокс брал значение из aspx резметки

Если коротко - то "разметки" после компиляции страницы не существует. Значение "из разметки" превращается в строчку textBox.Text = "значение из разметки" в сгенерированном для страницы Init. Поэтому сбросить значение контрола без его пересоздания не получится.


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.