7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
1

TextBox в ASP.NET

01.03.2013, 09:22. Показов 5038. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, как можно отследить ввод в TextBox в ASP без потери фокуса и нажатия кнопок и динамически при вводе обрабатывать то, что ввожу?
К примеру: Ввожу цифры в TextBox, он автоматически умножает на константу и выводит в другой контрол. Должно быть так, что ввожу число, вижу результат. Не убирая фокус с элемента ввожу еще цифру - результат меняется и т.д.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2013, 09:22
Ответы с готовыми решениями:

asp.net вызов textbox[i] из ранее созданного массива textbox
Есть две кнопки на веб-форме. Нажимая на первую получаем массив текстбоксов. Нажимая по второй...

ASP.NET + C#. Теряется форматирование TextBox'ов
Тестирую приложение на IE, Netscape и Opera. Когда запускаю приложение на localhost, все выглядит...

Работа с динамическим TextBox в asp.net
Здравствуйте! Столкнулся со следующей проблемой: При нажатии на Button1 динамически создаются три...

Простая валидация TextBox в ASP.NET
у меня есть таблица с возможностью update и дополнительный textbox через который я вношу новые...

13
328 / 163 / 89
Регистрация: 03.11.2010
Сообщений: 920
01.03.2013, 11:09 2
Используйте свойство TextChanged.
0
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
02.03.2013, 09:00  [ТС] 3
Оно, как говорит MSDN, осуществляет проверку перед отправкой на сервер. Мне же необходима сразу после ввода цифры реакция программы.
0
328 / 163 / 89
Регистрация: 03.11.2010
Сообщений: 920
02.03.2013, 10:18 4
Kovy, используете событие изменения текста в вашем TextBox и вызываете метод, который выполняет необходимые вам расчеты.
0
326 / 159 / 45
Регистрация: 06.12.2012
Сообщений: 305
02.03.2013, 20:34 5
Цитата Сообщение от Kovy Посмотреть сообщение
Оно, как говорит MSDN, осуществляет проверку перед отправкой на сервер. Мне же необходима сразу после ввода цифры реакция программы.
1.
HTML5
1
AutoPostBack="true"
но вся страница будет обновляться при воде-удаление одного символа.
2. Значит нам нужен AJAX, на твой textbox.

событие остается тоже самое которое было предложено сверху.
1
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
03.03.2013, 08:58  [ТС] 6
skynick99, уже лучше. поставил UpdatePanel... использую свойство textbox'a TextChanged. Но есть одно но - оно вызывается после того, как контрол теряет фокус. Хотелось бы добиться реакции без потери фокуса при вводе.
0
326 / 159 / 45
Регистрация: 06.12.2012
Сообщений: 305
03.03.2013, 12:35 7
Цитата Сообщение от Kovy Посмотреть сообщение
Хотелось бы добиться реакции без потери фокуса при вводе.
C#
1
tb_some.Attributes.Add("onkeypress", "some_test(this)");
HTML5
1
2
3
4
5
6
7
<asp:TextBox ID="tb_some" runat="server" />
        <script type="text/javascript">
            function some_test(obj) {
                obj.style.color = "#9999ff";
                obj.value += " yep ";
            }
        </script>
1
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
04.03.2013, 14:17  [ТС] 8
Цитата Сообщение от skynick99 Посмотреть сообщение
C#
1
tb_some.Attributes.Add("onkeypress", "some_test(this)");
не очень понял - где это писать? в событии TextChanged? Или при загрузке страницы?
0
3 / 3 / 2
Регистрация: 14.03.2012
Сообщений: 23
04.03.2013, 17:40 9
в файле some.aspx.cs в Page_Init
1
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
05.03.2013, 12:56  [ТС] 10
Написанное вами работает, спасибо. Но я маленько изменил, и работать перестало, что не так?
C#
1
summa.Attributes.Add("onkeypress", "some_test(Label2)");
Javascript
1
2
3
4
5
<script type="text/javascript">
function some_test(obj) {
obj.value = "1";
}
</script>
Подумал, может изменения в Label не отображаются динамически на странице. Добавил "снаружи" UpdatePanel - не помогло(
0
326 / 159 / 45
Регистрация: 06.12.2012
Сообщений: 305
05.03.2013, 13:11 11
C#
1
tb_some.Attributes.Add("onkeypress", "some_test(this)");
HTML5
1
2
3
4
5
6
7
<asp:TextBox ID="tb_some" runat="server" />
<asp:Label ID="lb_some" Text="text" runat="server" />
        <script type="text/javascript">
            function some_test(obj) {              
                document.getElementById("lb_some").innerHTML = obj.value;           
             }
        </script>
Добавлено через 1 минуту
тут тогда вопрос в другом, что вы хотите получить? может и UpdatePanel и не надо. А просто javascript.

Добавлено через 2 минуты
еще раз прочел. если
Цитата Сообщение от Kovy Посмотреть сообщение
К примеру: Ввожу цифры в TextBox, он автоматически умножает на константу и выводит в другой контрол.
то можно без updatepanel хватит и javascript.
1
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
05.03.2013, 13:30  [ТС] 12
skynick99, Первый вариант работает и без UpdatePanel.
А вот с обновлением Label - не катит( Не происходит ничего.

Добавлено через 14 минут
и UpdatePanel не спасает)
0
326 / 159 / 45
Регистрация: 06.12.2012
Сообщений: 305
05.03.2013, 13:34 13
еще раз это все работоспособно проверял же:
HTML5
1
2
3
4
5
6
7
8
 <asp:TextBox ID="tb_some" runat="server" />
        <asp:Label ID="lb_some" Text="text" runat="server" />
        <script type="text/javascript">
            function some_test(obj) {              
                document.getElementById("lb_some").innerHTML = obj.value;              
                
            }
        </script>
C#
1
tb_some.Attributes.Add("onkeypress", "some_test(this)");
Добавлено через 1 минуту
проверьте имена ID, и т.п.
0
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
05.03.2013, 13:56  [ТС] 14
HTML5
1
2
3
4
5
6
7
8
9
<form id="form1" runat="server">  
<asp:TextBox ID="summa" runat="server" Width="115px"></asp:TextBox>
 <asp:Label ID="Label2" runat="server" Text="0,00 руб."></asp:Label>
                                                 <script type="text/javascript">
                                                     function some_test(obj) {
                                                         document.getElementById("Label2").innerHTML = obj.value;
                                                     }
                                                 </script>
</form>
C#
1
2
3
4
 protected void Page_Init(object sender, EventArgs e)
        {
            summa.Attributes.Add("onkeypress", "some_test(this)");
        }
Вроде все четко. При вводе в текстбокс summ надпись не меняется.
Пробовал в JS дописать
Javascript
1
obj.value += "1";
Эта строка выполняется нормально. А вот Лейбл не реагирует.
0
05.03.2013, 13:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2013, 13:56
Помогаю со студенческими работами здесь

При создании проекта ASP.NET Aplicetion выскакивает сообщение Web server is not running ASP/NET version 1.1
При создании проекта ASP.NET Aplicetion выскакивает сообщение Web server is not running ASP/NET...

Client ASP.NET MVC + Angular и Server side ASP.NET WEB.API
Доброго времени суток! Не первый день бьюсь над задачей, не могу понять в чем причина. Хочу...

Стоит ли учить asp.net, если скоро станет asp.net core?
Всем привет Если я правильно понимаю, лучше учить Core ?

Что выбрать ASP.NET или ASP.NET Core ?
Добрый день форумчане, хотелось бы услышать ваше мнение, какой из перечисленных фреймворков лучше...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru