AutoCompleteExtender は、TextBox と組み合わせて使用すると、Google で検索ワードを入力するのと同じような機能があり、TextBox の下にドロップダウン ボックスが表示され、検索対象の項目が表示されます
この拡張機能コントロールを使用する必要があります。 Web サービスと連動しているため、Web サービスの使用が含まれます (ここでは簡単に説明します。Web サービスの内容については、慣れてから詳しく説明します)
最初に紹介します。 AutoCompleteExtender のいくつかの主要な属性:
a、TargetControlID この属性は、拡張機能であるすべての AjaxControlToolkit の共通属性です (これは公式が言ったことです)
b.CompletionSetCount この属性は、表示されるドロップダウン結果の数。デフォルトは 10 です。
c.MinimumPrefixTextLength この属性は、いくつかの文字の長さを設定し、webService を呼び出します。
d.ServicePathこの属性は、呼び出す必要がある Web サービスのパスを設定します。
e.ServiceMethod この属性は、呼び出す必要がある Web サービス内のメソッド (関数) を設定します。
f.EnableCaching: クライアント内にあるかどうかデータを最後にキャッシュします。デフォルトは true
g.CompletionInterval: サーバーからデータを読み取る時間間隔、デフォルトは 1000、単位: ミリ秒
注: 視覚的なコントロールを使用してプロパティを設定することに慣れている場合、a プロパティは AutoCompleteExtender にあります TargetControlId を設定した後、他のプロパティは対応する TargetControl の Extenders プロパティに設定されます。コードを手書きすることに慣れている場合は、AutoCompleteExtender コード プロパティに設定します。
例: 1. 新しいページを作成し、ScriptManager コントロール、TextBox コントロール、および AutoCompleteExtender コントロールを追加します
2. 新しい webService を作成し、[WebMethod] メソッドを追加します
[WebMethod]
public string[] GetString(string prefixText, int count){
System.Collections.Generic.List list = new System.Collections.Generic.List(count);
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.Services.ScriptService] を webService クラスに追加する必要があります
サンプル コード: webService はフィールドからデータを取得しますデータベース内
ページ コード:
<%@ ページ言語="C#" AutoEventWireup= "true" CodeFile="test2.aspx.cs" Inherits="test2" %>
<%@ アセンブリの登録 = "CrystalDecisions.Web, Version=10.2" .3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix=" cc1" %>
DropDownExtender簡単な演習 < リンク href="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer3/css/default.css"
rel="stylesheet" type="text/css" /> >
" runat="server" EnableScriptGlobalization="True" EnableScriptLocalization="True">
< /asp:TextBox>
ServiceMethod="GetString" ServicePath="AutoComplete.asmx" TargetControlID="TextBox2">
/body>
webService コード:
System.Web を使用;
System.Web.Services を使用;
System.Web.Services.Protocols を使用
///
/// AutoComplete の概要説明
///
[WebService(Namespace = "http://tempuri.org/") ]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//以下は必須です。そうでない場合、関数は実装できません
[System.Web.Script.Services.ScriptService]
public class AutoComplete : System .Web.Services.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,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 < i )
{
list.Add(prefixText i.ToString())
return list.ToArray(); >}
何か間違っていることがあれば教えてください