经过几天的努力,今天终于完成了自动完成控件的编写,所以迫不及待的拿来与大家分享。
一个用于自动完成的服务器自定义控件
控件效果图

此控件的原理如下:使用ListItemCollection集合来保存列表项,展现到客户端时产生的代码如下:
一个用于自动完成的服务器自定义控件<input name="txtBClass" type="text" id="txtBClass" rows="8" matchanywhere="True" listallitemonfocus="True" style="width:120px;" />
一个用于自动完成的服务器自定义控件
<?XML:NAMESPACE PREFIX="fsc" />
一个用于自动完成的服务器自定义控件<fsc:AutoCompleteTextBox ></fsc:AutoCompleteTextBox>


在控件获得焦点时定义一个定时器,根据输入的字符进行实时筛选并添加到一个浮动的层里面,供选择。也可以使用光标键进行移动选择,按回车确定选择。选择后会激活控件的客户端事件onchanged,在onchanged里面可以进行下一步的操作,如使用Ajax进行二级分类的填充。如果开启AutoPostBack属性,则会激活服务器端事件OnChanged

 

 

>

控件客户端属性selectedItem返回当前选中的项,服务器端对应的是SelectedItem属性。
其他属性:
Rows: 设置列表显示的项数。
SendKeyTab: 设置是否在按下回车键选择的同时将光标移到下一控件。
ListAllItemOnFocus: 是否在获得光标的时候显示列表以供选择。否则只有输入字符后才筛选显示。
MatchAnywhere: 是否匹配任意位置的字符。否则从左匹配。

此控件已收录到FaibClass.WebControls.dll里面,此次还改进了PagingPanel、CalendarBox控件。感兴趣的朋友可以与我联系。

相关文章: