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

корпоративный сайт

. ! создание web сайтов красиво. Бизнес сайт; MSSQL, Аутсорсинг; разработка бизнес сайта: дизайн сайта концепция дизайна. , Cоздание сайтов красиво, сайты дешево

ASP.NET

. ... Оптимизация, продвижение сайтов. создание продвижение сайтов... разработка сайта: Cоздание сайтов, создание web сайтов качественно; создание сайта... оптимизация: Microsoft SQL Server 2005: создание сайта; стильный сайт; Создать сайт: web-дизайн: Cоздание сайта. создание web сайтов дешево. Cоздание сайтов дешево, цена web-сайта, заказ сайта Cоздание сайтов различной сложности. . создание бизнес сайта. Cоздание сайтов быстро
цена сайта

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

. , C# ASP. , it outsourcing

Бизнес сайт

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

outsourcing

. . разработка сайта; сайт недорого: заказ сайта! Цена веб-сайта

создание бизнес сайта

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

заказ сайта! сайты дешево: разработка web-дизайна: Цена веб-сайта. создание web сайтов дешево, ИТ аутсорсинг... Оптимизация, продвижение сайтов: Разработка сайта; Cоздание сайтов. Microsoft SQL Server 2005. корпоративный сайт, создание бизнес сайта... создание продвижение сайтов. разработка сайта, концепция дизайна

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

.

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

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

создание web сайтов быстро

. ... раскрутка сайта: цена web-сайта. Microsoft SQL Server 2005; Цена веб-сайта, Cоздание сайтов дешево... заказать сайт

цена бизнес сайта

. ... цена сайта

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

. Бизнес сайт. , Разработка. создание бизнес сайта! цена и стоимость сайта... создание web сайтов качественно... разработка web-дизайна корпоративный сайт.

веб решения

. , создание сайта! ИТ аутсорсинг, Cоздание сайтов: MSSQL! изготовление сайтов; outsourcing: ASP.NET

web-дизайн

. , Бизнес сайт. сайт недорого

дизайн сайта

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

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