经过近两天的搜索和研究,我终于找到了几个基于jQuery的自动完成插件,我认为这些插件值得使用并适合我的Web应用程序。
我正在ASP.Net C#中开发一个基于MVC2的Web应用程序。我使用L2S(LINQ to SQL)作为我的数据访问层,并使用服务层架构通过L2S获取数据。
现在,我将有一些“查找”,其中选择列表可能很大(即1000个或更多记录),因此有时我希望我的自动完成查找是动态的(即我提供从中获取值并在下拉列表中显示的页面)。但也有简单的10-20个值,我希望以静态方式呈现。
总之,我需要一个非常简单和直接的自动完成插件,它可以在不询问我太多问题或要求太多.js文件(当然不包括jQuery)的情况下完成工作。
以下是我的研究摘要及结论:
- 更简单,静态,包含搜索功能( http://frontensemble.com/hyjack/)
- 简单,静态/动态,只有以开头的搜索功能( http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/)
- 复杂,静态/动态,类似组合框的包含搜索和更多功能 ( http://jqueryui.com/demos/autocomplete/ http://docs.jquery.com/UI/Autocomplete/ )
- 更简单,静态/动态,包含搜索功能 ( http://www.dyve.net/jquery?autocomplete )
*请将以上“点”视为我的评分。经过一些洞察和演示评论,我得出结论,我将选择#4 dyve.net自动完成插件,因为它似乎具备我需要的所有功能,并且最重要的是它不复杂。
您会发现,#3具有丰富的功能,但它很大并且变得复杂,所以我必须放弃它。FYI,#2仅是#3的初始版本(但我面临的唯一问题是它(#2)只有以开头的匹配,包含匹配更好)
希望我没跑题。
编辑:
经过一晚上的尝试和20多个小时的挣扎和实验,我得出结论:使用jQuery时,我需要选择一个有更大支持的东西。对于选项#4-当我想要基于父级填充子下拉列表时,主要问题出现了。它确实可以动态填充,但它也会保留旧项目,所以在搜索时,旧项目也会弹出!我尝试了它的cacheFlush等方法,但都没有奏效。最后,我在作者的Google代码页面上发布了我的评论,并离开了它。
- 我的最终观点是使用jQueryui-当我得到太多共享同一库的其他插件时,我可以处理一些复杂性。因此,我的投票给选项#3
:)
- Andrew Whitaker