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


Автор: hamele0n 2.3.2011, 19:28
Интересует как обработать событие textbox, которое вызывается при наборе текста в textbox.
Накодил вот что, две процедуры, одна при нажатие на кнопку(работает нормально) и событие textbox1, которое срабатывает при одновление updatepanel1(если предварительно в поле что то писалось) но не при наборе текста.
Код

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebApplication1._Default" %>
 
<!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">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true">
            <ContentTemplate>
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                <asp:Button ID="Button1" runat="server" Text="Button" />
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    </form>
</body>
</html>


Код

Partial Public Class _Default
    Inherits System.Web.UI.Page
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        TextBox1.Text = DateTime.Now.ToString
    End Sub
    Protected Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.TextChanged
        Button1.Text = TextBox1.Text
    End Sub
End Class



Автор: Gluttton 2.3.2011, 20:05
Ууупс...

Автор: Mymik 12.3.2011, 18:10
на сколько я понимаю, ты немного путаешь клиентские события и серверные события.
Для того чтобы перехватывать набор текста в TextBox тебе нужно использовать JS

Код

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebApplication1._Default" %>
 
<!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">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true">
            <ContentTemplate>
                <asp:TextBox ID="TextBox1" onkeypress="TextChanged(event);" runat="server"></asp:TextBox>
                <asp:Button ID="Button1" runat="server" Text="Button" />
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    <script type="text/javascript">
        function TextChanged(e) {
            /* get destination button*/
            var button = document.getElementById('<%= Button1.ClientID %>');
            /* setup button text from textbox */
            button.value = e.target.value + String.fromCharCode(e.charCode);
        }
    </script>
    </form>
</body>
</html

Автор: hamele0n 14.3.2011, 08:18
а можно сделать так чтоб я мог обрабатывать vb кодом? т.е если задача посложнее, мне нужно реализовать поисковые подсказки

Автор: Freyzer 14.3.2011, 08:25
Можно, для этого надо обработать жабаскрипт код в ВБ коде, это делается. Но! Как! вопрос пока и для меня. Учти еще одно, сие будет обрабатываться на сервере. А это значит, полная перезагрузка страницы при отправке запроса на обработку. Может в сторону аякса глянуть? 

Автор: hamele0n 14.3.2011, 09:37
да я вот сейчас пытаюсь, познал что такое веб сервис но не могу пока понять как через js скрипт вызвать метод веб сервиса

Автор: Mymik 17.3.2011, 13:50
попробуй погуглить по поводу ключу asp.net PageMethod. Эта штука поможет тебе вызывать VB методы из JS с помощью всяких прослоек. 
Но я бы на твоем месте воспользовался бы уже готовым решением от Microsoft http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/AutoComplete/AutoComplete.aspx - зачем изобретать велосипед.

Автор: hamele0n 17.3.2011, 14:43
Цитата(Mymik @ 17.3.2011,  13:50)
Но я бы на твоем месте воспользовался бы уже готовым решением от Microsoft http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/AutoComplete/AutoComplete.aspx - зачем изобретать велосипед.

юзал смотрел, скачал пример. В чем проблема у меня возникла. Там нет файла проекта. Загрузил так. запустил VS2008 нажал открыть сайт, указал папку. Вроде все открылось и даже работает. 
Но когда я создаю вэб приложение и создаю все эти файлы и весь код просто перетаскиваю из примера, то почему то не работает, ошибок никаких, кто может кинуть мне вэб приложение с файлом проекта с данным примером буду очень благодарен.

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