AutoComplete Extender 는 자동 으로 확장 을 완 료 했 습 니 다.TextBox 와 함께 사용 하 는 기능 은 현재 google 에 검색 어 를 입력 하면 TextBox 아래 에서 드 롭 다운 상자 에 검색 대상 의 항목 을 표시 합 니 다.이 확장 컨트롤 은 웹 서비스 에 맞 춰 사용 해 야 하기 때문에 웹 서비스의 사용 과 관련 되 었 습 니 다.익숙 해 지면 웹 서비스의 내용 을 자세히 이야기 합 니 다)먼저 AutoComplete Extender 의 몇 가지 관건 적 인 속성 을 소개 합 니 다.a,TargetControl ID 라 는 속성 은 모든 Ajax Control Toolkit 의 공동 속성 입 니 다.대상 컨트롤 ID 를 확장 하 는 것 입 니 다(공식 적 으로 말씀 드 리 겠 습 니 다)b.CompletionSetCount 이 속성 은 드 롭 다운 결 과 를 표시 하 는 줄 수 를 설정 하 는 것 입 니 다.기본 값 은 10 입 니 다.호출 할 웹 서비스의 방법(함수)f.EnableCashing:클 라 이언 트 캐 시 데이터 에 있 는 지,기본 값 은 true g.CompletionInterval:서버 에서 데 이 터 를 읽 는 시간 간격,기본 값 은 1000,단위:밀리초 주:시각 적 컨트롤 로 속성 을 설정 하 는 습관 이 있다 면 a 속성 은 AutoComplete Extender 에 설정 되 고,다른 속성 은 TargetControlId 를 설정 한 후,해당 TargetControl 에 Extenders 속성 을 하나 더 설정 하고,손 글씨 코드 에 익숙해 지면 AutoComplete Extender 코드 속성 에 설정 합 니 다.예:1.페이지 를 새로 만 들 고 ScriptManager 컨트롤 을 추가 합 니 다.TextBox 컨트롤 을 추가 합 니 다.AutoComplete Extender 컨트롤 2.웹 서 비 스 를 새로 만 들 고[WebMethod]방법[WebMethod]을 추가 합 니 다.
public string[] GetString(string prefixText, int count){
System.Collections.Generic.List<string> list = new System.Collections.Generic.List<string>(count);
System.Data.DataSet ds = new System.Data.DataSet();
// SqlHelper
//string strSql = string.Format("SELECT TOP {0} NAME FROM CengWei WHERE NAME LIKE '{1}%' ORDER BY NAME",count,prefixText);
//ds = SqlHelper.Query(strSql);
//for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
//{
// list.Add(ds.Tables[0].Rows[i][0].ToString());
//}
for (int i = 0; i < count; i++)
{
list.Add(prefixText+i.ToString());
}
return list.ToArray();
}
그 중에서 웹 서비스 클래스 에[System.Web.script.Service.ScriptService]예제 코드 를 추가 해 야 합 니 다.웹 서 비 스 는 데이터베이스 의 한 필드 에서 데이터 페이지 코드 를 추출 합 니 다.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test2.aspx.cs" Inherits="test2" %>
<%@ Register Assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!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>DropDownExtender </title>
<link href="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer3/css/default.css"
rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="True" EnableScriptLocalization="True">
</asp:ScriptManager>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender2" runat="server" MinimumPrefixLength="1"
ServiceMethod="GetString" ServicePath="AutoComplete.asmx" TargetControlID="TextBox2">
</cc1:AutoCompleteExtender>
</form>
</body>
</html>
webService 코드:using System;using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols; ///
///AutoComplete 요약 설명//[WebService(Namespace="http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]//아래 는 필수 입 니 다.그렇지 않 으 면 기능 이[System.Web.script.Service.ScriptService]Public class AutoComplete:System.Web.Service.WebService{Public AutoComplete(){//설 계 된 구성 요 소 를 사용 하면 다음 줄/InitializeComponent()설명 을 취소 하 십시오.}[WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public string[] GetString(string prefixText, int count){ System.Collections.Generic.List
list = new System.Collections.Generic.List(count); System.Data.DataSet ds = new System.Data.DataSet(); //데이터베이스 에서 데 이 터 를 가 져 오 는 코드 입 니 다.SqlHelper 클래스 는 프로젝트 에서 데 이 터 를 가 져 오 는 기본 클래스 입 니 다./string strSql=string.Format("SELECT TOP{0}NAME FROM CengWei WHERE NAME LIKE"{1}%"ORDER BY NAME",count,prefixtxt);/ds = SqlHelper.Query(strSql); //for (int i = 0; i < ds.Tables[0].Rows.Count; i++) //{ // list.Add(ds.Tables[0].Rows[i][0].ToString()); //} for (int i = 0; i < count; i++) { list.Add(prefixText+i.ToString()); } return list.ToArray(); } } 뭐 가 잘 못 됐 는 지 가르쳐 주세요.