AutoComplete是对文本框控件的扩展,当用户输入前面的字母时,以弹出区域的形式给出备选词条。就像我们在用百度搜索时可以在下方弹出近似搜索词组一样。
textbox控件,ToolkitScriptManager控件,AutoCompleteExtender控件和示例数据库:本例中是TextFile.txt
前台代码:
注意:要设置MinimumPrefixLength,不然输再多的字母也弹不出备选词条。
本例中新建了一个WEB服务:AutoComplete.asmx。
在AutoComplete.asmx中写入下列代码:
其中用到的几个方法:
1
Sort(Array, IComparer) | 使用指定的 IComparer,对一维 Array 中的元素进行排序。 |
2
BinarySearch(Array, Object, IComparer) | 使用指定的 IComparer 接口,在整个一维排序 Array 中搜索值。 |
参数
-
array
-
类型:System
..::.Array
要搜索的已排序一维 Array。
-
value
-
类型:System
..::.Object
要搜索的对象。
-
comparer
-
类型:System.Collections
..::.IComparer
比较元素时要使用的 IComparer 实现。
- 或 -
若为 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing),则使用每个元素的 IComparable 实现。
返回值
类型:System..::.Int32
如果找到 value,则为指定 array 中的指定 value 的索引。如果找不到 value 且 value 小于 array 中的一个或多个元素,则为一个负数,该负数是大于 value 的第一个元素的索引的按位求补。如果找不到 value 且 value 大于 array 中的任何元素,则为一个负数,该负数是(最后一个元素的索引加 1)的按位求补。
如果 Array 不包含指定值,则该方法会返回负整数。可对负结果应用按位求补运算符 (~)以生成一个索引。如果此索引大于等于数组的大小,则数组中没有比 value 更大的元素。否则,即为大于 value 的第一个元素的索引。
3
Copy(Array, Int32, Array, Int32, Int32) | 从指定的源索引开始,复制 Array 中的一系列元素,将它们粘贴到另一 Array 中(从指定的目标索引开始)。长度和索引指定为 32 位整数。 |
参数
-
sourceArray
-
类型:System
..::.Array
Array,它包含要复制的数据。
-
sourceIndex
-
类型:System
..::.Int32
一个 32 位整数,它表示 sourceArray 中复制开始处的索引。
-
destinationArray
-
类型:System
..::.Array
Array,它接收数据。
-
destinationIndex
-
类型:System
..::.Int32
一个 32 位整数,它表示 destinationArray 中存储开始处的索引。
-
length
-
类型:System
..::.Int32
一个 32 位整数,它表示要复制的元素数目。