- 浏览: 647466 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
ssxszt:
...
解决PopUpManager弹出窗口RangeError: Error #2006: 提供的索引超出范围 -
lijiajia:
木子佳 写道楼主,想要源码学习,谢谢。kajiamuzi@16 ...
DataGrid和AdvancedDataGrid CheckBox全选功能 -
juedi:
很好,是我需要的东东
Flex异常处理设计 -
暖暖fh:
大神,我想要源码,这个功能我折腾了好我啊 fuhan247@1 ...
DataGrid和AdvancedDataGrid CheckBox全选功能 -
chenzi:
一样的代码,两台机器上面,完全不同的报错。。Flex实现htt ...
Flex使用Https协议
package com.beyondsoft { import flash.events.Event; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.controls.ComboBox; import mx.events.FlexEvent; import mx.utils.StringUtil; /** * ComboBox过滤自动完成组件 * @author 韩敬诺 * */ public class AutoCompleteComboBox extends ComboBox { public function AutoCompleteComboBox() { if(!width){ //如果没有指定width则设置默认的宽度 width=120; } setStyle("paddingLeft","0"); selectedIndex=-1; editable=true; addEventListener("creationComplete",init); } private var ac:ArrayCollection;//保存数据源 /** * * @param event * */ private function init(event:Event):void{ ac=dataProvider as ArrayCollection; } /** * 重写下三角按钮的点击事件 * @param event * */ override protected function downArrowButton_buttonDownHandler(event:FlexEvent):void{ dataProvider=ac; super.downArrowButton_buttonDownHandler(event); } /** * 当输入框中的值发生变化时开始过滤 * @param event * */ override protected function textInput_changeHandler(event:Event):void{ super.textInput_changeHandler(event); //当数据源不为空并且关键字不为空时开始搜索数据源 if(ac){ var keyWord:String=StringUtil.trim(textInput.text); if(keyWord){ searchKeyWord(keyWord); } } } /** * * @param keyWord关键字 * */ private function searchKeyWord(keyWord:String):void{ var dp:ArrayCollection=filterData(ac); //当数据源改变的时候 if(dp.length>0){ dataProvider=dp; dropdown.selectedIndex=-1; dropdown.verticalScrollPosition=0; textInput.setFocus(); //注意先设置关键字被选中后打开下拉列表 textInput.setSelection(keyWord.length,keyWord.length); open(); }else{ dataProvider=ac; textInput.text=""; selectedIndex=-1; close(); } } /** * * @param item * @return * */ private function filterData(ac:ArrayCollection):ArrayCollection{ var dp:ArrayCollection=new ArrayCollection(); for(var i:int=0;i<ac.length;i++){ var item:Object=ac.getItemAt(i); if(item.hasOwnProperty(labelField)){ var value:String=item[labelField]; if(value.indexOf(textInput.text)!=-1){ dp.addItem(item); } } } return dp; } } }
网上虽然有很多例子,但是写的都有很多bug,因此自己动手写了个组件。出现了一个难点就是如何点击下三角的时候数据源全部出来,看了ComboBox后才知道是这个方法downArrowButton_buttonDownHandler,因此重写这个方法就ok了。
思路:1监听textInput_changeHandler事件
2 对数据源进行过滤
3 重写下三角的点击事件
评论
6 楼
meetyourmm
2011-12-25
你的这个例子 还是有些bug
只能输入一次 输完之后 textInput.text的值自动选择了数据源的第一个 不能输入第二个单词 而且获得textInput焦点 使得再次输入将重新替换textInput.text的值
点击下拉(即你说的下三角) 就有数据 其实很简单 只需要在触发textInput_changeHandler事件前 将dataProvider赋值 并selectIndex = -1;
只能输入一次 输完之后 textInput.text的值自动选择了数据源的第一个 不能输入第二个单词 而且获得textInput焦点 使得再次输入将重新替换textInput.text的值
点击下拉(即你说的下三角) 就有数据 其实很简单 只需要在触发textInput_changeHandler事件前 将dataProvider赋值 并selectIndex = -1;
5 楼
空谷悠悠
2011-04-15
你好,为什么我这行报错呢?提示setSelection方法未定义
textInput.setSelection(keyWord.length,keyWord.length);
即使我引入了import mx.core.ITextInput包,仍然无效。
另外textInput是内置的对象引用吗?这里好像也没有明确的声明,假如我用
new TextInput().setSelection()似乎就可以了。
textInput.setSelection(keyWord.length,keyWord.length);
即使我引入了import mx.core.ITextInput包,仍然无效。
另外textInput是内置的对象引用吗?这里好像也没有明确的声明,假如我用
new TextInput().setSelection()似乎就可以了。
4 楼
远去的渡口
2010-11-05
为什么我重写downArrowButton_buttonDownHandler,总是报"标记为override方法必须覆盖另一方法" 这个错误,编译都通不过。
3 楼
bxl994
2010-06-24
有问题,下拉列表选择一个项后,比如选择第二个数据后,再点击下拉列表后,当前选择的项又变成第一个了,应该将当前选择项的索引记录下来,然后每次点击下拉的时候把selectIndex赋值回去
2 楼
yunzhongxia
2010-04-09
initNodename
你好,我这里测试是没有问题的,能否把你的代码贴出来一起研究下那的原因。
telestar789 写道
您好,我一开始是这样使用这个控件的:
<myutil:AutoCompleteComboBox id="varNameAutoCombo"
dataProvider="{valueVarName}" labelField="nodename"
initialize="initNodename()"
change="filterNameCombo()"/>
init后有数据,但是下拉菜单后就是空的,如果注释掉downArrowButton_buttonDownHandler中的dataProvider=ac;就有数据,请问您知道问题出在哪里吗?
<myutil:AutoCompleteComboBox id="varNameAutoCombo"
dataProvider="{valueVarName}" labelField="nodename"
initialize="initNodename()"
change="filterNameCombo()"/>
init后有数据,但是下拉菜单后就是空的,如果注释掉downArrowButton_buttonDownHandler中的dataProvider=ac;就有数据,请问您知道问题出在哪里吗?
你好,我这里测试是没有问题的,能否把你的代码贴出来一起研究下那的原因。
1 楼
telestar789
2010-04-08
您好,我一开始是这样使用这个控件的:
<myutil:AutoCompleteComboBox id="varNameAutoCombo"
dataProvider="{valueVarName}" labelField="nodename"
initialize="initNodename()"
change="filterNameCombo()"/>
init后有数据,但是下拉菜单后就是空的,如果注释掉downArrowButton_buttonDownHandler中的dataProvider=ac;就有数据,请问您知道问题出在哪里吗?
<myutil:AutoCompleteComboBox id="varNameAutoCombo"
dataProvider="{valueVarName}" labelField="nodename"
initialize="initNodename()"
change="filterNameCombo()"/>
init后有数据,但是下拉菜单后就是空的,如果注释掉downArrowButton_buttonDownHandler中的dataProvider=ac;就有数据,请问您知道问题出在哪里吗?
发表评论
-
图片背景使用九宫格
2012-07-24 10:20 0[Embed(source="../ass ... -
Flex弹出窗口做为Module
2012-07-23 18:00 0今天才知道原来TitleWindow也可以单独编译 ... -
Repeater使用简介
2012-05-09 19:26 1658mx组件中的Repeater类似与sprak中的Da ... -
Flex失效机制
2012-02-29 17:19 3019一、什么是失效机 ... -
Image倒影效果
2012-02-20 10:11 1725利用spark的BitmapImage实现倒影效果 ... -
Flex设置z轴的index
2012-02-13 14:58 4796flex4的UIComponent新增了dept ... -
得到一个字符的Unicode编码
2012-02-09 12:59 2014ActionScript 3.0String类中函数charC ... -
解决PopupManager.createPopup报错:状态“inactive”未定义
2012-02-04 21:27 2243出现这种的场景是在Module中使用弹出窗口Pop ... -
用chrome浏览器调试flex程序
2012-02-04 18:55 6921开发flex程序难免需要debug,但是IE8浏 ... -
Flash Player11不能输入中文,请谨慎升级
2011-12-18 01:04 2701很多时候,Flash的程序需要集成到其他系统中 ... -
优化Flash Builder
2011-12-18 00:54 2670Flash Builder4中新增了一个ASDO ... -
设置DataGrid的DataGridColumn的width
2011-12-18 00:42 5199DataGrid的column的width属性不 ... -
RollOver和MouseOver的不同
2011-12-12 15:03 3037共同点:都是针对鼠标的进入和进出事件。 ... -
转 Adobe移动战略失败的幕后
2011-12-08 15:56 1368最近一段时间,Adobe和Apple两个昔日的好伙 ... -
Flash Builder该这样编译,希望adboe的人能看到
2011-12-06 12:17 0从3.0开始使用flash builder,对f ... -
List或DataGrid可变行高
2011-11-29 21:57 3169默认情况下List组件是每行的行高是固定的,但 ... -
访问flex sdk版本和Flash player版本
2011-11-16 15:52 1359下面的代码将flex sdk的版本号和Fla ... -
设置TitleWindow的closeButton的mode
2011-11-16 15:42 1215默认情况下,TitleWindow的closeBu ... -
DataGrid header显示tooltip
2011-11-15 17:18 2541有时需要在DataGrid的header上显示 ... -
flash右键菜单项关键字
2011-11-15 16:26 1244有时需要在flash的右键菜单中添加 删除 ...
相关推荐
2. **输入自动过滤**:实现输入自动过滤,我们可以订阅ComboBox的TextChanged事件。当用户在输入框中输入字符时,触发此事件。然后,遍历ComboBox的所有项,检查每一项的各个列是否以输入的字符开头。如果找到匹配的...
在ComboBox中实现此功能,我们需要监听用户输入事件,然后根据当前输入的文本动态过滤列表项。 二、C#实现步骤 1. 首先,确保你的项目引用了System.Windows.Forms命名空间,这是包含ComboBox控件的基础库。 ```...
在某些场景下,我们可能希望实现ComboBox的自动过滤功能,即当用户在输入框中输入字符时,下拉列表会实时更新,只显示与输入字符匹配的选项。这篇博客“Flex实现自动过滤ComboBox”将深入探讨如何通过源码实现这一...
在实际应用中,我们经常需要实现用户输入时的自动匹配功能,即当用户在文本框中输入字符时,下拉列表会动态更新,显示出与输入字符匹配的选项。本DEMO主要解决的就是这个问题。 在`DataGridViewComboBox`中实现自动...
综上所述,实现"自动筛选并完成输入的Combobox Edit"涉及到多个编程层面的知识,包括UI设计、事件处理、数据绑定、搜索算法以及性能优化等。理解和掌握这些技术点,对于开发高效、易用的应用程序至关重要。
5. **设置SelectedIndex**:为了实现自动选中匹配的项,你可以设置ComboBox的SelectedIndex属性,使其指向过滤后列表的第一个项。 6. **优化性能**:在处理大量数据时,为避免频繁的过滤操作影响性能,可以考虑使用...
ComboBox控件可以输入文本...该自定义控件利用visual studio2017开发,使用VB.NET语言对TextBox和ComboBox进行了改写,实现类百度搜索框似的输入文本智能模糊提示说明、自动匹配过滤功能。具体效果请参阅本人相关博文。
总的来说,实现C# ComboBox的自动补全涉及到数据绑定、事件监听、数据过滤和优化,以及在ASP.NET环境下的Ajax处理。通过不断实践和积累,你可以创建出高效、灵活且用户体验良好的自动补全功能。这正是软件项目实施...
然而,为了提供更友好的用户体验,开发人员常常需要实现一个功能,即“根据输入自动查询”,这正是“c# combox根据输入自动查询”这个主题所关注的核心点。这个功能允许用户在输入框中键入文字时,ComboBox会实时地...
在本篇内容中,我们将探讨2012年1月2日发布的一个关于C# ComboBox实现自动补全的小技巧,这是开发者在系统和软件项目实施过程中积累的经验。 首先,自动补全功能在用户界面设计中非常实用,它可以提升用户体验,...
在本文中,我们将深入...总的来说,通过监听ComboBox的TextChanged事件并结合Linq的过滤方法,我们可以轻松地实现C#中ComboBox的动态搜索功能。这个功能极大地提高了用户查找所需信息的速度,提升了应用程序的易用性。
本知识点主要探讨如何实现Combobox的模糊匹配和自动匹配功能,这在开发具有智能搜索特性的应用时十分常见。 模糊匹配是允许用户输入部分关键字,系统就能找出与之匹配的数据项的技术。在Combobox中,这种功能可以极...
总之,“ComboBox控件的自动查询技术源码”是一个实用的资源,提供了在VB环境中实现ComboBox动态过滤和自动补全功能的方法。通过深入研究并实践这个源码,开发者能够提升自己的编程技能,特别是在创建高效、用户友好...
然而,标准的ComboBox并未内置查询自动显示功能,即用户在输入时不能实时过滤列表中的选项。为了解决这个问题,开发者通常需要自定义ComboBox控件,实现一个具有查询自动显示特性的组件。在"ComboBox带查询自动显示...
自动完成通常基于用户在文本框中输入的字符,实时过滤列表中的项目,只显示与输入相匹配的那些。这不仅提高了用户的输入效率,也提供了更好的用户体验。在.NET Framework 2.0中,虽然没有内置的自动完成支持,但可以...
在VB(Visual Basic)编程中,利用ComboBox控件可以实现用户输入时的自动查询功能,提高用户体验,使得用户能快速找到所需的信息。这种技术常用于数据库查询、搜索栏等场景。 自动查询技术的核心在于,当用户在...
3. 自动查询列表:在用户输入字符时自动过滤并显示匹配的列表项,这是一种常见的优化用户体验的方式。这通常通过处理WM_KEYDOWN消息,然后根据输入的字符更新ComboBox的内容来完成。可以使用BeginUpdate和EndUpdate...
2. **自动提示**:当用户在输入框中键入字符时,ComboBox能够根据已输入的字符自动过滤并显示匹配的选项,这极大地提高了用户的交互体验和选择效率。 3. **源码实现**:由于标签中提到了“源码”,这意味着这个...
而实现QComboBox输入自动提示功能,可以极大地提升用户体验,类似于Google搜索框的自动完成效果。这个功能在开发过程中常用于减少用户的输入负担,提高数据选择的效率。本篇将详细介绍如何在C++中使用Qt库来实现这一...
在自定义ComboBox时,开发者通常会关注如何动态加载数据,如何根据用户输入进行过滤,以及如何实现自定义样式和行为。 TreeView控件则用于显示层次结构的数据,例如文件系统目录、组织结构或数据库记录。每个节点...