C#中使用JQueryUI中Autocomplete插件

服务器端后台代码:

 1          private string GetModelNames() {
 2             return @"[
 3               {
 4                   ‘value‘: ‘jquery‘,
 5                   ‘label‘: ‘jQuery‘,
 6                   ‘desc‘: ‘the write less, do more, JavaScript library‘,
 7               },
 8               {
 9                   ‘value‘: ‘jquery-ui‘,
10                   ‘label‘: ‘jQuery UI‘,
11                   ‘desc‘: ‘the official user interface library for jQuery‘,
12               },
13               {
14                   ‘value‘: ‘sizzlejs‘,
15                   ‘label‘: ‘Sizzle JS‘,
16                   ‘desc‘: ‘a pure-JavaScript CSS selector engine‘,
17               }
18             ]".Replace("‘", "\"");
19         }

第一种方式:动态数据源

Aspx页面代码:

 1                $("#ModelName2").autocomplete({
 2                 minLength: 0,
 3                 source:function( request, response ) {
 4                     $.ajax({
 5                         url: "SystemAjaxData.ashx?selectType=getModelNames",
 6                         success: function (data) {
 7                             var jsonData = eval("(" + data + ")");
 8                             response(jsonData);
 9                         }
10                     });
11                 },
12                 focus: function (event, ui) {
13                     $("#ModelName2").val(ui.item.label);
14                     return false;
15                 },
16                 select: function (event, ui) {
17                     $("#ModelName2").val(ui.item.label);
18                     $("#ModelNameValue2").val(ui.item.value);
19
20                     return false;
21                 }
22             });

由于Ajax返回的是字符串,因此必须用eval方法转换成Json对象再返回给Autocomplete插件使用。

第二种方式:固定数据源方式,并且动态改变下拉选择框样式

 1      var projects = [
 2       {
 3         value: "jquery",
 4         label: "jQuery",
 5         desc: "the write less, do more, JavaScript library",
 6         icon: "jquery_32x32.png"
 7       },
 8       {
 9         value: "jquery-ui",
10         label: "jQuery UI",
11         desc: "the official user interface library for jQuery",
12         icon: "jqueryui_32x32.png"
13       },
14       {
15         value: "sizzlejs",
16         label: "Sizzle JS",
17         desc: "a pure-JavaScript CSS selector engine",
18         icon: "sizzlejs_32x32.png"
19       }
20     ];
21
22     $("#ModelName2").autocomplete({
23                 minLength: 0,
24                 source:projects,
25                 focus: function (event, ui) {
26                     $("#ModelName2").val(ui.item.label);
27                     return false;
28                 },
29                 select: function (event, ui) {
30                     $("#ModelName2").val(ui.item.label);
31                     $("#ModelNameValue2").val(ui.item.value);
32
33                     return false;
34                 }
35             })
36             .autocomplete("instance")._renderItem = function (ul, item) {
38                 return $("<li>")
39                   .append("<a>" + item.label + "<br>" + item.desc + "</a>")
40                   .appendTo(ul);
41             };

第三种方式:缓存后台数据源

 1 var cache = {};
 2             $("#ModelName2").autocomplete({
 3                 minLength: 0,
 4                 source: function( request, response ) {
 5                     var term = request.term;
 6                     if ( term in cache ) {
 7                         response( cache[ term ] );
 8                         return;
 9                     }
10                     $.ajax({
11                         url: "SystemAjaxData.ashx?selectType=getModelNames",
12                         success: function (data) {
13                             var jsonData = eval("(" + data + ")");
14                             cache[ term ]=jsonData;
15                             response(jsonData);
16                         }
17                     });
18                 },
19                 focus: function (event, ui) {
20                     $("#ModelName2").val(ui.item.label);
21                     return false;
22                 },
23                 select: function (event, ui) {
24                     $("#ModelName2").val(ui.item.label);
25                     $("#ModelNameValue2").val(ui.item.value);
26
27                     return false;
28                 }
29             });
时间: 2024-10-12 08:37:34

C#中使用JQueryUI中Autocomplete插件的相关文章

jQueryUI Autocomplete插件使用入门教程(最新版)---------转载

前言: jQuery,无需多作介绍,相信各位读者都应该接触或使用过了.jQuery UI,简而言之,它是一个基于jQuery的前端UI框架.我们可以使用jQuery + jQuery UI非常简单方便地制作出界面美观.功能强大.跨浏览器兼容的前端html界面. 今天,我们就来介绍jQuery UI中一个功能非常强大的部件Autocomplete. Autocomplete,是一个功能强大的自动完成输入的jQuery插件,它也是jQuery UI的一部分.相信用过百度或者Google搜索的读者一定

【转】在Eclipse中安装和使用TFS插件

文章地址:http://www.cnblogs.com/judastree/archive/2012/09/05/2672640.html 问题: 在Eclipse中安装和使用TFS插件. 解决过程: 在Eclipse中安装插件的方法其实都一样,安装TFS的步骤如下: 下载TFS插件.你可以到微软的下载中心,下载TFS插件TFSEclipsePlugin-UpdateSiteArchive-10.0.0.zip. 下载完毕之后,打开Eclipse. 点击Help菜单中的Install New S

在Gradle中使用jaxb的xjc插件

jaxb,全称为Java Architecture for Xml Binding,是一种将java对象与xml建立起映射的技术.其主要提供两个功能,一是将java对象映射为xml,二是将xml映射为java对象.JAXB有1.0版和2.0版.2.0版对应的JSR(Java specification request, java规格要求)是JSR 222.jaxb中的xjc工具能够将XML Schema转换为对应的java类.支持的XML类型包括XML DTD,XSD以及WSDL.而schema

Android4.2.2下Stagefright多媒体架构中的A31的OMX插件和Codec组件

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email: [email protected] 在前面的博文中提到,AwesomePlayer::onPrepareAsyncEvent()开始进行Codec解码器组件的获取以及创建,这里和大家分享. 1.以解码器实例作为切入点 status_t AwesomePlayer::initVideoDecoder(uint32_t flags) { ATRACE_CALL(); ...... ALOG

MyEclipse 10 中安装Android ADT 22插件的方法

MyEclipse 10 中安装Android ADT 22插件的方法 下载ADT包:http://dl.google.com/android/ADT-22.0.0.zip 将ADT-22.0.0.zip文件放在指定的目录下,例如D:\Programs\Android,不解压. 打开MyEclipse,点击菜单Help >MyEclipse Configuration Center,如下图 在MyEclipse Configuration Center中,点击Software标签,再点击add

MyEclipse 10.0破解,及建立Myeclipse中建立JFrame 和Swing插件的使用

一.MyEclipse 注册码生成 免积分下载 http://download.csdn.net/detail/u014112584/7270453 具体使用过程: myeclipse 9.1.10 破解 激活,java编写,适用于装有java环境的各种操作系统,win,linux,maxos 第一步:输入任意用户名 第二步:点击Systemid... 按钮,自动生成本机器的systemid. 第三步: 点菜单Tools->RebuildKey 第四步:点击active按钮.会在显示区域生成 L

iOS开发中常用的几个插件

上篇文章简单的说了下Xcode中的插件管理工具Alcatraz,今天呢就给大家分享一些自己在开发中使用较多的插件,可以帮助你提高开发效率,如果你还没有使用过Alcatraz,那么你可以先戳这里Alcatraz的安装与使用 1. KSImageNamed KSImageNamed可以根据图像名称快速选择图片的插件,可以快速的帮你选择自己想要的图片. 2. VVDocumenter VVDocumenter用于Xcode中快速的添加注释,为开发者阅读代码提供了很大的帮助. 3.FuzzyAutoco

主攻ASP.NET.4.5.1 MVC5.0之重生:在项目中使用zTree jQuery 树插件

效果图和json格式 Controllers代码 using HR.Models; using HR.Models.Repository; /************************************************************************************ * 命名空间:HR.Controllers * Controller: TreeController * 版本号: F 1.0.0.0 * 负责人: Markfan * 电子邮箱:[ema

仿javascript中confirm()方法的小插件

10天没有写博客了,不知道为什么,心里感觉挺不舒服的,可能这是自己给自己规定要去完成的事情,没有按照计划执行,总会心里不怎么舒服.最近事情挺多的,终于今天抽空来更新一下博客了. 今天写的是一个小插件.平时我们习惯于使用javascript中自带的confirm()函数做出一个弹窗的效果,但是问题在于这样的弹窗非常不美观,大大降低了网页的整体效果. 好吧废话不多说,首先先来了解一下confirm()函数,下面应该注释得很清楚了. if(confirm("我们去阿里转山吧,好吗?")){/