Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / __PostBack кнопки и TextBox, при нажатии в браузере "Обновить" / 10 сообщений из 10, страница 1 из 1
02.07.2012, 14:23
    #37862963
Conditional Reflex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
__PostBack кнопки и TextBox, при нажатии в браузере "Обновить"
Вообщем незнаю как бы правильнее назвать было тему.

Имею такую проблему:

Отсылаю данные из текстбокса по нажатию кнопки. (оба стандартных контрола ASP.NET)
Код: html
1.
2.
3.
<asp:TextBox ID="TextBoxMSG" Width="720px" Height="100px" TextMode="MultiLine" runat="server"></asp:TextBox>

<asp:Button ID="ButtonSend" runat="server" Text="Отправить" Width="150px" Height="25px" OnClick="ButtonSend_Click" />


При исполнении кода на сервере, делаю проверку
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
    protected void ButtonSend_Click(object sender, EventArgs e)
    {
        if (TextBoxMSG.Text.Trim().Length > 0)
        {
            SendMessage();
            TextBoxMSG.Text = ""; // затираю данные в текстбоксе, что-бы случайно не постили пустышки
        }
    }


однако, на клиенте значение в текстбоксе пусто (тустой текстбокс в браузере), НО ЕСЛИ нажать в браузере обновить, то срабатывает постбэк нажатой кнопки и постится предыдущее значение текстбокса.

Как побороть? Уже незнаю что пробовать.
...
Рейтинг: 0 / 0
02.07.2012, 15:18
    #37863069
Deza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
__PostBack кнопки и TextBox, при нажатии в браузере "Обновить"
Conditional Reflex,

попробуй так
Код: c#
1.
2.
3.
4.
if (!String.IsNullOrEmpty(TextBoxMSG.Text))
{
                
}
...
Рейтинг: 0 / 0
02.07.2012, 15:25
    #37863078
Conditional Reflex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
__PostBack кнопки и TextBox, при нажатии в браузере "Обновить"
Дело не валидности проверки длины строки

Дело в том что в текстбоксе лежит значение, которое постил пользователь. Хотя в браузере оно не отображается

Смотрел под отладкой.
Такое впечатление что данные текстбокса хранятся еще где-то, как бы глупо не звучало
...
Рейтинг: 0 / 0
02.07.2012, 15:32
    #37863093
Conditional Reflex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
__PostBack кнопки и TextBox, при нажатии в браузере "Обновить"
Проблема заключается в
1. Пользователь постит сообщение
2. Сервер добавляет данные
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
    protected void ButtonSend_Click(object sender, EventArgs e)
    {
        if (TextBoxMSG.Text.Trim().Length > 0)
        {
            SendMessage();
            TextBoxMSG.Text = ""; // затираю данные в текстбоксе, что-бы случайно не постили пустышки
        }
    }


3. команда TextBoxMSG.Text = "" затирает данные в текстбоксе. В браузере текстбокс чистый

4. Если нажать обновить в браузере, происходит постинг предыдущего значения (то есть ОПЯТЬ вызывается постбэк кнопки, идет проверка значения текстбокса, в котором лежит значение предыдущей транзакции, в результате будет столько одинаковых сообщений, сколько и нажатий кнопки "Обновить")
...
Рейтинг: 0 / 0
02.07.2012, 15:50
    #37863128
chessar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
__PostBack кнопки и TextBox, при нажатии в браузере "Обновить"
Conditional Reflex,
Делать редирект на текущую же страницу после кода обработки нажатия кнопки.
...
Рейтинг: 0 / 0
02.07.2012, 15:59
    #37863146
Conditional Reflex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
__PostBack кнопки и TextBox, при нажатии в браузере "Обновить"
До этого случая так всегда и делал.

Хотел по элегантнее решение найти.
...
Рейтинг: 0 / 0
02.07.2012, 16:33
    #37863249
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
__PostBack кнопки и TextBox, при нажатии в браузере "Обновить"
выключить вьюстест не ?
...
Рейтинг: 0 / 0
02.07.2012, 16:37
    #37863261
chessar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
__PostBack кнопки и TextBox, при нажатии в браузере "Обновить"
handmadeFromRu,
Это непоможет.

Если без редиректа, то использовать сессию что-ли например, запоминать что нажата была кнопка при постбэке в Page_Load, а после обработки затирать.
...
Рейтинг: 0 / 0
02.07.2012, 17:12
    #37863334
Conditional Reflex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
__PostBack кнопки и TextBox, при нажатии в браузере "Обновить"
chessar,

Похоже так и прийдется делать.
...
Рейтинг: 0 / 0
02.07.2012, 21:25
    #37863614
Conditional Reflex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
__PostBack кнопки и TextBox, при нажатии в браузере "Обновить"
Решил проблему, поместил все барахло на UpdatePanel проблемма ушла сама собой. Причина все-таки во ViewState мне кажется. Дальше копать не стал.

Всем спасибо. Тему можно закрывать.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / __PostBack кнопки и TextBox, при нажатии в браузере "Обновить" / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]