создание продвижение сайтов. ! создание сайта, создание web сайтов красиво, разработка сайта! Бизнес сайт, раскрутка сайта, outsourcing... ASP, Cоздание сайтов быстро... разработка сайта, Бизнес сайт! создание web сайтов дешево: разработка web-дизайна, создание бизнес сайта Самые маленькие цены и сроки реализации сайтов. , ASP.NET: продвижение сайта. Разработка! корпоративный сайт, C#, it outsourcing. стильный сайт... создание сайта веб решения. ; ИТ аутсорсинг... Cоздание сайтов дешево! разработка бизнес сайта, web дизайн студия: веб-дизайн, разработка сайтов Cоздание сайтов. ; Оптимизация, продвижение сайтов... web-дизайн, Cоздание сайтов красиво! цена web-сайта; Cоздание сайтов качественно

изготовление сайтов

. ! концепция дизайна оптимизация. , Цена веб-сайта цена и стоимость сайта. . Cоздание сайтов различной сложности: дизайн сайта! Разработка сайта: Аутсорсинг; создание web сайтов качественно: MSSQL .NET. . цена сайта, Cоздание сайта: заказать сайт, Создать сайт; создание web сайтов быстро, сайт недорого: заказ сайта: сайты дешево... Microsoft SQL Server 2005; стоимость сайта, цена бизнес сайта
it outsourcing, Бизнес сайт. ASP.NET; создание продвижение сайтов! Бизнес сайт Cоздание сайта. ; раскрутка сайта Разработка. : Цена веб-сайта; цена бизнес сайта! outsourcing: концепция дизайна. Microsoft SQL Server 2005; C#... Cоздание сайтов дешево; web дизайн студия, Cоздание сайтов красиво. создание бизнес сайта! создание web сайтов дешево, создание web сайтов быстро! продвижение сайта Cоздание сайтов. . создание web сайтов качественно; разработка сайта; сайт недорого, Оптимизация, продвижение сайтов; заказать сайт; изготовление сайтов: .NET, разработка бизнес сайта; ASP; цена и стоимость сайта... создание сайта: создание web сайтов красиво. web-дизайн! оптимизация, цена web-сайта: Cоздание сайтов качественно... стильный сайт; веб-дизайн, разработка сайтов. создание сайта... Создать сайт! разработка сайта! цена сайта, MSSQL: Cоздание сайтов различной сложности; заказ сайта! корпоративный сайт; дизайн сайта; ИТ аутсорсинг! сайты дешево; Самые маленькие цены и сроки реализации сайтов; разработка web-дизайна: веб решения. Cоздание сайтов быстро, стоимость сайта

Аутсорсинг

. : Разработка сайта
IT реальность - наша профессия
Вход для клиентов:
Логин:
Пароль:
 Портфолио 
 Услуги и решения 
 Публикации и статьи 
 Контакты 

изготовление сайтов! цена бизнес сайта Создать сайт. концепция дизайна.

раскрутка сайта

. ... ИТ аутсорсинг, сайт недорого. цена сайта, Cоздание сайтов Бизнес сайт. ; Cоздание сайтов качественно... web дизайн студия: создание сайта: цена web-сайта! создание бизнес сайта

ASP.NET

. ! Cоздание сайтов быстро! Аутсорсинг, веб решения: создание web сайтов дешево, дизайн сайта стоимость сайта. ... outsourcing: разработка сайта сайты дешево. , Cоздание сайтов различной сложности. .NET Оптимизация, продвижение сайтов. : заказать сайт! создание сайта. разработка бизнес сайта... создание web сайтов быстро

продвижение сайта

. ... корпоративный сайт, Microsoft SQL Server 2005

оптимизация

. ... Самые маленькие цены и сроки реализации сайтов; Разработка. Цена веб-сайта, ASP веб-дизайн, разработка сайтов. ... Разработка сайта, Cоздание сайтов красиво! создание продвижение сайтов; разработка web-дизайна! Cоздание сайта. создание web сайтов красиво. Бизнес сайт. web-дизайн: создание web сайтов качественно: заказ сайта разработка сайта. цена и стоимость сайта.

Cоздание сайтов дешево

. . стильный сайт. it outsourcing: MSSQL. C#

AJAX - подстановка слов в текстовое поле

Главная страница / Публикации и статьи / Технологии / AJAX - подстановка слов в текстовое поле

Данная статья посвящена созданию возможности подстановки слов в текстовое поле. Использование такой возможности позволит пользователю сэкономить время, необходимо при вводе информации (например: ввести несколько первых букв названия города, и потом в появившемся списке выбрать название нужного города).

Для реализации возможности списка подстановки используется технология ASP.NET 2.0.

Первое, что необходимо – это создать проект веб-приложения. Для этого в Visual Studio 2005 выберите в меню пункт File\New\Web Site. В появившемся окне выберите заготовку ASP.NET Web Site, в местоположении проекта введите, например, «C:\Inetpub\wwwroot\AutoCompleteWords», выберите язык Visual C# и нажмите кнопку OK.

Теперь займемся созданием списка автоматической подстановки, для этого в каталоге App_Data проекта создадим файл Words.txt, в который поместим набор слов, Вы можете поместить в него любые слова, но для примера поместим в него некоторые слова из глоссария .NET SDK:

access control list (ACL)
ADO.NET
aggregate event
alpha channel
anchoring
antialiasing
application base
application domain (AppDomain)
application manifest
application state
ASP.NET
ASP.NET application services database
ASP.NET mobile controls
ASP.NET mobile Web Forms
ASP.NET page
ASP.NET server control
ASP.NET Web application
assembly
assembly cache
assembly manifest
assembly metadata
assertion (Assert)
association class
ASSOCIATORS OF
asynchronous method 
attribute
authentication
authorization
autopostback

После создания файла, содержащего слов для подстановки, создадим саму веб-форму, которая будет содержать текстовое поле с возможностью подстановки. Для этого в файл Default.aspx, который содержится в созданном проекте, поместим следующий код:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="AutoComplete" %>

<!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 id="Head1" runat="server">
    <title>Текствое поле с подстановкой</title>

    <script type="text/javascript">
     function TextKeyDown(WhoSend,WhoGet) //Обработка нажатий кнопок
        {
            var e=event;
            if(e.keyCode==13)
            {
                e.returnValue =false;
                return false;
            }
            else if(e.keyCode==27)
            {
                document.getElementById(WhoGet).style.display='none'
                e.returnValue =false;
            }
        }
        function SendData(WhoSend,WhoGet) //Отправка данных на сервер и 
проверка нажатых клавиш в текстовом поле
        {
            if (WhoSend.value.length<2){return false;}//Ничего не делать, 
если введено меньше 2-х символов
            var objGet=document.getElementById(WhoGet);
            var e=event;
            if (e.keyCode==40) //Нажата стрелка вниз
            {
                if (objGet.selectedIndex<objGet.options.length-1)
                    objGet.selectedIndex++;
                else 
                    objGet.selectedIndex=0;
                return false;
            }else if (e.keyCode==38) //Нажата стрелка вверх
            {
                if (objGet.selectedIndex>0)
                    objGet.selectedIndex--;
                else 
                    objGet.selectedIndex=objGet.options.length-1;
                return false;
            }else if (e.keyCode==13) //Нажат ввод
            {
                ReturnValueToTextBoxs(objGet,WhoSend)
                return false;
            }else if (e.keyCode==27) //Нажат Escape
            {
                objGet.style.display='none';
                return false;
            }
            //Выполнение запроса на сервер и отображение списка подстановки
            var offset=WebForm_GetElementPosition(WhoSend) //Получение 
координат текстового поля
            CallServer(WhoSend.value,WhoGet); //Запрос на сервер
            objGet.style.top =offset.y+WhoSend.offsetHeight+'px';
            objGet.style.left =offset.x+'px';
            objGet.style.width =offset.width+'px';
            objGet.style.display='block'; //Отображение списка на экране

        }
        function ReceiveServerData(args, context) //Поучение данных с сервера
        {
            if (args.length=0){return false;} //Ничего не делаем, если ничего не получено
            var select=document.getElementById(context)
            var mass=args.split("\t"); //Превращаем строку в массив
            for (var i=select.length-1;i>-1;i--) //Очищаем список
                select.options[i]=null;
            for (var i=0;i<mass.length-1;i++)
            {
                select.options[i]=new Option(mass[i]); //Заполняем список
            }
            if (i!=0)
                select.size=i+1; //Выставляем размер с списка

        }        
        function ReturnValueToTextBoxs(SelectObj,TextObj)//Заполняем текстовое поле
        {
            TextObj.value=SelectObj.options[SelectObj.selectedIndex].text;
            TextObj.focus();
            SelectObj.style.display='none';
        }
        function SelectItem(select,textbox,mouse) //Обрабатываем события списка подстановки
        {
            TextObj=document.getElementById(textbox);
            SelectObj=select;
            if (mouse==true)
            {
                
                ReturnValueToTextBoxs(SelectObj,TextObj);
            }
            else
            {
                var e=event;
                if (e.keyCode==13)
                {
                    ReturnValueToTextBoxs(SelectObj,TextObj);
                 
                }
                else if(e.keyCode==27)
                {
                    TextObj.focus();
                    SelectObj.style.display='none';
                }
                
            }
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server" Width="477px"
AutoCompleteType="Disabled"></asp:TextBox>
            <asp:ListBox ID="Select1" runat="server" Style="position: 
absolute; display: none;">
            </asp:ListBox>
        </div>
    </form>
</body>
</html>


А в файл Default.aspx.cs поместим исходный код обработчика событий веб-формы:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

public partial class AutoComplete : System.Web.UI.Page, ICallbackEventHandler
{
    string CallbackResult; //Здесь хранится результат callback
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            RegisterClientScript();
            TextBox1.Attributes.Add("onkeyup",
			String.Format("SendData(this,'{0}');", Select1.ClientID)); //Подключаем 
обработчик нажатия клавиш
            TextBox1.Attributes.Add("onkeydown",
			String.Format("TextKeyDown(this,'{0}',event)", Select1.ClientID)); 
//Обработка нажатия клавиш
            Select1.Attributes.Add("onkeydown",
			String.Format("SelectItem(this,'{0}',false);", TextBox1.ClientID)); 
			//Событие списка
            Select1.Attributes.Add("ondblclick",
			String.Format("SelectItem(this,'{0}',true);", TextBox1.ClientID)); 
			//Событие списка
        }
    }
    /// 
    /// Процедура регистрации клиентских скриптов обратного вызова
    /// 
    private void RegisterClientScript()
    {
        ClientScriptManager m = Page.ClientScript;
        string cbReference = m.GetCallbackEventReference(this, "args", 
"ReceiveServerData", "context");
        string strCallback = "function CallServer(args,context){" +
cbReference + ";}";
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), 
"CallServer", strCallback, true);
    }
    /// 
    /// Функция возвращающая результат callback
    /// 
    public string GetCallbackResult()
    {
        return CallbackResult;
    }
    /// 
    /// Процедура вызываемая клиентским скриптом
    /// 
    public void RaiseCallbackEvent(string eventArgument)
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        FileStream file = new
          FileStream(Server.MapPath("~/App_Data/words.txt"), FileMode.Open,
          FileAccess.Read);
        StreamReader reader = new StreamReader(file);
        String word;
        while ((word = reader.ReadLine()) != null)
        {
            if (word.Length >= eventArgument.Length)
                if (eventArgument.ToLower() == word.Substring(0,
 eventArgument.Length).ToLower())
                {
                    sb = sb.Append(word);
                    sb = sb.Append("\t");
                }
        }
        file.Close();
        CallbackResult = sb.ToString();
    }
}


Теперь запустим проект на выполнение. На экране появится веб-страница, содержащая одно единственное текстовое поле.


Введем в него слово as, после этого экран должен принять примерно такой вид:


Для того, чтобы перейти на какое-нибудь слово из списка подстановки, нажимаем стрелку вниз на клавиатуре. Чтобы выбрать слово, нажимаем ввод, также выбор слова можно осуществить двойным щелчком.
В мире много апельсинов,
а такой как этот  -  
только мы!
У нас всегда найдется время связаться с Вами!
Заполните, пожалуйста, форму обратной связи.
Это займет всего 30 секунд времени.
Ваше имя: *
Компания:
E-mail:
Телефон: *
Вопрос: *
Введите код: *
(защита от спама)
Обратите внимание на то, что поля, отмеченные *, обязательны для заполнения.

Пишите:
Cоздание сайтов различной сложности; стоимость сайта, стильный сайт. Cоздание сайтов дешево корпоративный сайт. ИТ аутсорсинг. , outsourcing; ASP.NET

заказать сайт

. : ASP! дизайн сайта... web-дизайн! создание сайта. цена сайта

Разработка сайта

. ; сайты дешево... создание web сайтов дешево! Цена веб-сайта, изготовление сайтов! web дизайн студия. Самые маленькие цены и сроки реализации сайтов... оптимизация: Cоздание сайтов... сайт недорого: веб решения... концепция дизайна... разработка сайта... создание бизнес сайта: MSSQL! заказ сайта! it outsourcing, Cоздание сайтов красиво. цена бизнес сайта раскрутка сайта. , веб-дизайн, разработка сайтов Разработка. ! продвижение сайта; цена и стоимость сайта цена web-сайта. ; создание web сайтов красиво; .NET. Microsoft SQL Server 2005 Cоздание сайтов качественно. ... разработка бизнес сайта; Cоздание сайтов быстро

создание web сайтов качественно

. : Бизнес сайт C#. Бизнес сайт. ... разработка web-дизайна. Cоздание сайта... создание продвижение сайтов! разработка сайта: Оптимизация, продвижение сайтов! создание web сайтов быстро... Создать сайт... создание сайта. Аутсорсинг
оптимизация создание web сайтов быстро. : Самые маленькие цены и сроки реализации сайтов... цена web-сайта: цена сайта .NET. ... web-дизайн... создание бизнес сайта разработка сайта. , Создать сайт! концепция дизайна... создание продвижение сайтов! Разработка: разработка бизнес сайта; корпоративный сайт: ASP. изготовление сайтов. заказать сайт! создание web сайтов качественно Microsoft SQL Server 2005. Cоздание сайтов качественно. ... ASP.NET; разработка сайта, создание web сайтов дешево. Cоздание сайтов быстро, сайт недорого... разработка web-дизайна, Бизнес сайт! Аутсорсинг, цена и стоимость сайта. стильный сайт, создание web сайтов красиво: Cоздание сайта, Разработка сайта... заказ сайта; ИТ аутсорсинг: создание сайта... Cоздание сайтов дешево; веб-дизайн, разработка сайтов! Цена веб-сайта; веб решения, создание сайта, дизайн сайта; цена бизнес сайта; стоимость сайта: Cоздание сайтов различной сложности! it outsourcing, сайты дешево web дизайн студия. ! C#... Cоздание сайтов: продвижение сайта; Cоздание сайтов красиво. Оптимизация, продвижение сайтов! MSSQL: outsourcing; Бизнес сайт; раскрутка сайта

Яндекс цитирования     Рейтинг@Mail.ru     RU-CENTER
dotSoft © 2003 - 2019, Москва