• 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             });
  • 相关阅读:
    Optimizing Druid with Roaring bitmaps
    Processing a Trillion Cells per Mouse Click
    Fine-grained Partitioning for Aggressive Data Skipping
    F1 Query: Declarative Querying at Scale
    Data Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilation
    How to Architect a Query Compiler
    Evaluating EndtoEnd Optimization for Data Analytics Applications in Weld
    Everything You Always Wanted to Know About Compiled and Vectorized Queries But Were Afraid to Ask
    Pinot: Realtime OLAP for 530 Million Users
    JSP简单练习-猜字母游戏
  • 原文地址:https://www.cnblogs.com/coolsundy/p/4204662.html
Copyright © 2020-2023  润新知