Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > нужен особенный Текстбокс


Автор: AleXGray 25.8.2008, 19:04
Доброе время суток!
Мне понадобилось сделать текстовое поле, которое не показывало бы введенное ранее значение при нажатии кнопки бек (сразу после ухода с формы). Таким свойством обладает текстовое поле типа Password, но оно мне не подходит по той причине, что при вводе оно заменяет текст звездочками.
Я пробовал в жаваскрипте стирать его, но так не стирает. По крайней мере у меня. .
Хотелось бы узнать как получить нужный результат.

Автор: pr0fess0r 25.8.2008, 20:02
Мне думается, что это не свойство type="password", а свойство браузера т.к. оного можно настроить как на сохранение так и на очистку этого поля.

Автор: AleXGray 25.8.2008, 20:06
Да нет. Поскольку обычное поле при откате back сохраняет свое значение, а вот поле Password - нет.

Автор: Hades 26.8.2008, 15:35
Цитата(AleXGray @  25.8.2008,  19:04 Найти цитируемый пост)
Я пробовал в жаваскрипте стирать его, но так не стирает.

Код

<body onload="document.getElementById('TextBox1').value = ''">
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</body>

Автор: Idsa 26.8.2008, 15:45
Цитата(AleXGray @  26.8.2008,  00:06 Найти цитируемый пост)
Да нет. Поскольку обычное поле при откате back сохраняет свое значение, а вот поле Password - нет.

В JavaScript'е этого делать не стоит. Гораздо проще либо просто очищать содержимое TextBox'а (если нужны один-два контрола), например, в OnLoad или OnPreRender, либо создать контрол-наследник (если контролов нужно много). С контролом-наследником два варианта:
1. Создать UserControl, в который включить TextBox и в codebehind также очищать его
2. Создать наследника от TextBox с очищением в каком-нибудь event'е.
Разница между двумя этими подходами равносильна разнице между UserControl и WebControl.

Автор: Hades 26.8.2008, 15:59
Цитата(Idsa @  26.8.2008,  15:45 Найти цитируемый пост)
В JavaScript'е этого делать не стоит

почему ?

что каждый раз обращаться к серверу за таким пустяком?

Автор: AleXGray 26.8.2008, 17:40
На сервере это сделать невозможно в принципе, поскольку при нажатии на кнопку бэк с сервера страница не запрашивается.
Жаваскрипт у меня такой: Находится в коде изер-контрола

Код

<script type="text/javascript">
    var textField = document.getElementById(<%= "'"+TextBox1.ClientID+"'" %>);
    alert("Hello");
    textField.value = '';
</script>


алерт работает, т.е. вызывается жаваскрипт но данные все равно остаются

Автор: Hades 26.8.2008, 17:59
AleXGray, а мой вариант у вас работает, или не устраивает?

Автор: AleXGray 26.8.2008, 19:18
не работает.

Автор: Hades 26.8.2008, 19:41
Цитата(AleXGray @  26.8.2008,  19:18 Найти цитируемый пост)
не работает.

если не секрет можете показать код, или хотя бы часть.

Автор: AleXGray 26.8.2008, 19:50
работает, если без серверных элементов, голый хтмл. Но еще дело в том, что просто в боди я прописывать не могу, это юзер контрол, в нем должно быть все уже инкапсулировано. И к тому же их может быть не один, и заранее неизвестно сколько. Я сейчас пытаюсь перебрать RegisterStartupScript и т.д., но пока не оказывает эффекта....

Автор: Idsa 27.8.2008, 05:29
Цитата(AleXGray @  26.8.2008,  21:40 Найти цитируемый пост)
На сервере это сделать невозможно в принципе, поскольку при нажатии на кнопку бэк с сервера страница не запрашивается.

Виноват. Неправильно понял вопрос.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)