自动填充控件AutoCompleteExtender控件实现代码
AutoCompleteProperties的屬性包括 屬性名稱 屬性描述 備注
TargetControlID 指定要控制的控件的ID 一般為TextBox的ID
ServicePath 處理智能選擇列表的Web Services路徑??
ServiceMethod 處理智能選擇列表的網絡服務服務 該方法一般包含兩個參數(string prefixText, int count)
Enabled 是否可用??
MinimumPrefixLength 最小前綴的長度大小 當輸入長度達到最小的時候,便提供智能選擇
一、查看web.config文件中是否存在如下配置(倘若沒有請添加):
?<system.web>
<httpHandlers>
????? <remove verb="*" path="*.asmx"/>
????? <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
????? <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
????? <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
??? </httpHandlers>
?<system.web>
}
}
在這里需要注意以下幾點: 1.由于該WEB服務是為Ajax框架提供服務的,因此在類聲明之前得加上屬性聲明:
[System.Web.Script.Services.ScriptService]
2.特別需要注意的是GetCompletionList這個方法。凡是為AutoCompleteExtender控件提供服務的方法都必需完全滿足以下三個條件:
A.方法的返回類型必需為:string [];
B.方法的傳入參數類型必需為:string? ,?? int;
C.兩個傳入參數名必需為:prefixText? ,? count。
二、代碼如下:
2_SimpleList_AutoComplete_DragandDrop.aspx文件
?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="2_SimpleList_AutoComplete_DragandDrop.aspx.cs"
??? Inherits="_2_SimpleList_AutoComplete_DragandDrop" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
??? Namespace="System.Web.UI" TagPrefix="asp" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<!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>Untitled Page</title>
<body>
??? <form id="form1" runat="server">
??????? <div>
??????????? <asp:ScriptManager ID="ScriptManager1" runat="server">
??????????????? <Services>
??????????????????? <asp:ServiceReference Path="WebServiceSearchName.asmx" />
??????????????? </Services>
??????????? </asp:ScriptManager>
??????????? <asp:TextBox runat="server" ID="TextBoxInput" Width="300" autocomplete="off" />
??????????? <asp:AutoCompleteExtender runat="server" ID="AutoCompleteExtender1" TargetControlID="TextBoxInput"
??????????????? ServicePath="webservicesearchname.asmx" ServiceMethod="GetCompletionList" MinimumPrefixLength="1"
??????????????? CompletionInterval="100" EnableCaching="true" CompletionSetCount="12" />
??????? </div>
??? </form>
</body>
</html>
添加服務WebServiceSearchName, 且WebServiceSearchName.cs文件在App_Code文件夾下,其實內容如下:
using System;
using System.Web.Services;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
/** <summary>
/// Summary description for WebServiceSearchName
/// </summary>
[System.Web.Script.Services.ScriptService]
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebServiceSearchName : System.Web.Services.WebService ...{
??? public WebServiceSearchName () ...{
??????? //Uncomment the following line if using designed components
??????? //InitializeComponent();
??? }
??? [WebMethod]
??? public string[] GetCompletionList(string prefixText, int count)
??? ...{
??????? if (count == 0)
??????? ...{
??????????? count = 10;
??????? }
??????? Random random = new Random();
??????? List<string> items = new List<string>(count);
??????? for (int i = 0; i < count; i++)
??????? ...{
??????????? char c1 = (char)random.Next(65, 90);
??????????? char c2 = (char)random.Next(97, 122);
??????????? char c3 = (char)random.Next(97, 122);
??????????? items.Add(prefixText + c1 + c2 + c3);
??????? }
??????? return items.ToArray();
轉載于:https://www.cnblogs.com/Godblessyou/archive/2010/07/16/1779021.html
總結
以上是生活随笔為你收集整理的自动填充控件AutoCompleteExtender控件实现代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 湖北省武汉市电信IDC机房
- 下一篇: 读《编程之道》-对于程序员的抽象描述