`
chun521521
  • 浏览: 285158 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

combobox下拉框多字段模糊过滤

 
阅读更多

 

1.easyui

/**
 * 下拉框过滤
 * @param q
 * @param row
 * @param keys Array型
 * @return
 */
function filterComboboxData(q, row, keys){
 if(keys && keys.length > 0){
  for(var i=0;i<keys.length;i++){
   var result = row[keys[i]].toLowerCase().indexOf(q) > -1;
   if(result == true){
    return true;
   }
  }
 }else{
  var opts = $(this).combobox('options');
  return row[opts.textField].toLowerCase().indexOf(q) > -1;
 }
}

 

调用:

<select class="easyui-combobox textbox" id="diagnose2" name="diagnose2" data-options="required:true,valueField:'hcdid',textField:'name',url:'app/menzhen/listAllDiagnosis.do',filter: filterCombo"></select>


function filterCombo(q, row){
 var keys = new Array();
 keys[keys.length] = 'name';
 keys[keys.length] = 'wubicode';
 keys[keys.length] = 'pinyincode';
 return filterComboboxData(q, row, keys);
}

 

 

2.ext


/**
 * ext filterCombobox输入过滤
 * @param qe
 * @param keys Array型
 * @return
 */
function filterCombobox(qe,keys){
 //combo,query,forceAll,cancel
 var combo = qe.combo;
 var q = qe.query;  
 var forceAll = qe.forceAll;
 if(forceAll === true || (q.length >= combo.minChars)){
  if(combo.lastQuery !== q){
   combo.lastQuery = q;
   if(combo.mode == 'local'){
    combo.selectedIndex = -1;
    if(forceAll){
     combo.store.clearFilter();
    }else{//写自己的模糊过滤条件
     combo.store.filterBy(function(record,id){
      var result = false;
      if(keys && keys.length > 0){
       for(var j=0; j=keys.length; j++){
        var text = record.get(keys[i]);
        var val=combo.getValue();
        //过滤掉与输入框的值相等的记录
        if(text==val){
         return false;
        }
        result = (text.indexOf(q)!= -1);
        if(result == true){
         break;
        }
       }
      }else{
       var text = record.get(combo.displayField);
       var val=combo.getValue();
       //过滤掉与输入框的值相等的记录
       if(text==val){
        return false;
       }
       result = (text.indexOf(q)!= -1);
      }
                        return result;
     });
    }
    combo.onLoad();
   }else{
    combo.store.baseParams[combo.queryParam] = q;
    combo.store.load({  
     params: combo.getParams(q)  
             });  
    combo.expand();
   }
  }else{
   combo.selectedIndex = -1;  
   combo.onLoad();  
  }
 }  
 return false;
}

调用:

new Ext.form.ComboBox({
       store: new Ext.data.SimpleStore({
        fields: [{name: 'feeId',mapping:'feeId'},{name: 'feeName',mapping:'feeName'},{name: 'spec',mapping:'spec'},
                 {name: 'unit',mapping:'unit'},{name: 'price',mapping:'price'},{name: 'yibao',mapping:'yibao'}],
        data:feeNameData
     }),displayField: 'feeName', valueField: 'feeId', mode: 'local',allowBlank: false,
    editable: true, hideTrigger:false, selectOnFocus: true,forceSelection: true,triggerAction: 'all',
    listeners:{
        beforequery: function(qe){

var keys = new Array();
 keys[keys.length] = 'name';
 keys[keys.length] = 'wubicode';
 keys[keys.length] = 'pinyincode';
         return filterCombobox(qe,keys);
        }
        
       }
      })

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    C#自定义ComboBox下拉框

    这个自定义ComboBox下拉框的主要特点包括: 1. **复选框集成**:在下拉列表的每一项中都包含了复选框,用户可以勾选多个选项,这对于需要多选的场景非常有用。例如,用户可能需要从一组类别中选择多个标签或者兴趣...

    wpf comboBox 下拉框全国地址联动

    在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)应用程序中实现一个基于comboBox的全国地址联动功能。ComboBox是WPF中一个常用的控件,它允许用户在下拉列表中选择一个项或者输入自定义内容...

    winform combobox 模糊查询

    4. 如果你的数据源来自数据库或其他复杂结构,你可能需要先将数据加载到内存中的一个列表,或者使用数据库的模糊查询功能(如SQL的LIKE操作符)来过滤数据,然后再更新ComboBox的DataSource。 通过以上步骤,你就能...

    Delphi为StringGrid控件增加Combobox下拉框.rar

    Delphi为StringGrid网格显示控件中增加下拉框功能,也就是在Grid控件中添加Combobox下拉列表的功能,在任意列显示一个ComboBox功能,如演示截图所示,可大大扩展Grid的功能。生成列表:  with Sender as TComboBox ...

    好用的combobox下拉框

    好用的combobox下拉框

    C# ComboBox(winform) 显示多列 输入自动过滤

    总之,要实现"C# ComboBox(winform) 显示多列 输入自动过滤"的功能,需要对原生ComboBox控件进行扩展,添加多列显示的绘制逻辑和输入过滤的处理机制。通过这样的自定义,我们能够提供更丰富的用户体验,同时增强应用...

    ComBoBox下拉框图片文字显示源码

    总结,实现“ComBoBox下拉框图片文字显示源码”主要涉及自定义控件、处理DrawItem事件、管理图片资源和数据结构。这是一个对用户界面定制化程度较高的功能,适用于需要丰富视觉效果的Windows应用程序。通过这种方式...

    支持多选的ComboBox下拉框控件源代码

    实现多选的ComboBox下拉框,一种常见的方法是利用CheckedListBox控件。CheckedListBox允许用户勾选多个项,我们可以将其作为ComboBox的下拉列表。当用户选择一个或多个项后,将选中的项的文本显示在ComboBox的文本...

    带模糊查询的ComboBox

    然而,标准的`ComboBox`并不直接支持模糊查询功能,即输入部分文本后就能显示出匹配的选项。为了实现这一功能,开发者通常需要自定义控件或者扩展`ComboBox`的行为。这里我们讨论的是一个自定义的"带模糊查询的...

    C# 枚举绑定到ComboBox下拉框

    本文介绍C# 枚举绑定到ComboBox下拉框的实际开发代码,是开发人员的实际经验总结;绑定原理也适用于其他开发语言,如:Java、C++等

    通用型带CheckBox的ComboBox下拉框控件

    本主题将深入探讨一个特定的自定义控件——“通用型带CheckBox的ComboBox下拉框控件”。这个控件结合了ComboBox的下拉功能和CheckBox的选择特性,使得用户在选择下拉项时能有更多的交互方式。 ComboBox是Windows ...

    C#WinForm的ComboBox控件自定义实现自动模糊匹配查找数据的方法

    C#WinForm的ComboBox控件自定义实现自动模糊匹配查找数据的方法 与控件自带的AutoCompleteMode类似,完美实现模糊匹配,解决AutoCompleteMode只能从左向右匹配的问题

    combobox实现下拉框多选

    本方法和用checkbox, listbox等控件和事件拼凑出来的不同,本方法是一个集成的独立控件,基本实现了控件的顺滑度,下拉框可悬浮等效果,可以认为是comboBox的升级版,使用方便,仅需引用编译好的DLL,直接在toolBox...

    ios-自定义ComboBox下拉框组件.zip

    本项目“ios-自定义ComboBox下拉框组件”正是为了解决这一问题,它提供了一个类似网页中ComboBox的功能,使得用户可以在输入框中进行选择操作,提升界面的交互性。 该组件的核心在于其自定义的下拉框效果,它允许...

    有名的combobox下拉框插件压缩后的js版本

    combobox下拉框插件,具体的api可见combobox官网,主要特色是很方便地进行级联选择,这里是js压缩后的版本,使用时之间放入html即可,更加轻巧可用。

    C# Combobox控件实现模糊查询功能

    下面我们将详细探讨如何实现C# WinForm Combobox控件的模糊查询功能。 首先,我们需要了解Combobox的基本结构和事件。Combobox通常有两种模式:简单模式和dropdown模式。在dropdown模式下,用户可以输入自定义文本...

    Delphi在stringGrid控件中嵌入Combobox下拉框

    然而,有时我们可能需要在特定单元格中提供更丰富的交互功能,比如添加一个Combobox(下拉框)来让用户从预设选项中选择。本教程将详细介绍如何在StringGrid中嵌入Combobox控件,以增强用户界面的可操作性和用户体验...

    WPF DataGrid ComboBox下拉框数据绑定 代码实例

    在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)中使用DataGrid控件结合ComboBox实现数据绑定。WPF是.NET Framework的一部分,提供了一种强大的UI开发工具,支持丰富的图形效果和数据绑定...

    改变ComboBox下拉高度/强行展开下拉表/自动查询列表/多列下拉框/XP风格Combobox/带图标的ComboBox

    这个主题涵盖了几个关于ComboBox的高级特性和定制方法,包括改变下拉高度、强制展开下拉列表、实现自动查询功能、创建多列下拉框、应用XP风格以及添加图标到ComboBox。 1. 改变ComboBox下拉高度:默认情况下,...

Global site tag (gtag.js) - Google Analytics