Coolite的Combobox智能检索应用指南

下面是演示效果,请欣赏.


通过在输入区中输入要筛选的内容,将会自动匹配出你要找的记录.
但对于我们赛选条件更复杂的记录,该如何找寻呢? 我们可以点击右侧的"..."
接着就会出现下图

只要左键点击记录,此记录就会返回到之前的输入框中.

我们来看看代码如何实现
首先是Hander文件,做出处理自动检索的后台服务方法,
通过传递过来的筛选条件,调用做好的分页方法,去过滤出记录..

 

Handler


然后是前台的代码

Store对象
看过Coolite的Custom Search范例的可能会问了,ext:HttpProxy 怎么没写?
其实本人是在DNN框架下使用的,所以这个文件的定位我写到了.cs代码中
Code
当然,如果每此必要,你也可以像官网范例中,直接写上如。
<ext:Store runat="server" ID="Store1">
            
<Proxy>
                
<ext:HttpProxy Method="POST" Url="Plants.ashx" />
            
</Proxy>


下面是Combobox的代码
Code
要点
1.建立了两个Trigger,一个处理清空内容(所检索到的记录或者弹出查找到的记录), 另一个就是弹出新页面检索记录.
  Listeners几个事件就是针对是否隐藏"清空"按键的判断逻辑
2.仔细看,有一个ext:Hiddren, 真是一个关键点,其实本来根本没必要使用多一个Hiddren, 因为Combobox中的,Value和Text,就可以分别对应
一个显示值,和一个实际值,。。  我们从检索的下来框中选中的记录,也可以直接回填上这两个值,   但是实际上,我们使用SetValue想手动赋值给Combobox
值和显示值时,就发现,Value和Text都会被设置成同样的一个内容,我们不可能单独的修改掉其中一个,我们回传给检索框变得困难了,这使的应用起来相当麻烦.
google上也找到一些Ext下的偏门,但是本人没有试成功,所以,干脆,就用一个Hiddren单独存放这种实际值,再在一些Listeners中把值传递给Hiddren.

好的,我们看看.cs代码.

读取时:
Code
ShowTrigger是显示Trigger,
ConcealTrigger是隐藏Trigger,
这个是隐藏那个"清空"的
更新时:
Code

下面是弹出的window代码
Code


到这,就能实现一个功能健全的自动检索了

原文:http://www.cnblogs.com/DNNCenter/archive/2009/07/30/1535036.html

posted @ 2009-10-31 19:20  Andy  阅读(742)  评论(0编辑  收藏  举报