easyui datagridfilter插件的用法


用法

包含 'datagrid-filter.js' 文件
 
 
  1. <script type="text/javascript" src="datagrid-filter.js"></script>
启用过滤(Filter)
 
 
  1. var dg = $('#dg');
  2. dg.datagrid(); // create datagrid
  3. dg.datagrid('enableFilter'); // enable filter

属性

该属性扩展自数据网格(datagrid),下面是为数据网格(datagrid)添加的属性。

名称 类型 描述 默认值
filterMenuIconCls string 过滤菜单项(指示要使用的项目)的图标 class。 icon-ok
filterBtnIconCls string 过滤按钮的图标 class。 icon-filter
filterBtnPosition string 过滤按钮的位置。可能的值是 'left' 和 'right'。 right
filterPosition string 过滤栏相对于列的位置。可能的值是 'top' 和 'bottom'。 bottom
remoteFilter boolean 设置为 true 则执行远程过滤。
当启用时,'filterRules' 参数将发送到远程服务器。
'filterRules' 参数的值由 'filterStringify' 函数获得。
false
filterDelay number 从 'text' 过滤组件中最后一个键输入事件起,延迟执行过滤的时间。 400
filterRules array 过滤规则的定义。每个规则包含 'field'、'op' 和 'value' 属性。 []
filterStringify function 把过滤规则字符串化的函数。
      
      
  1. function(data){
  2. return JSON.stringify(data);
  3. }

方法

下面的方法扩展自数据网格(datagrid)。

名称 参数 描述
enableFilter filters 创建并启用过滤功能。
'filters' 参数是一个过滤配置的数组。
每一项包含下列属性:
1) field:需要定义规则的域。
2) type:过滤类型,可能的值:label、text、textarea、checkbox、numberbox、validatebox、datebox、combobox、combotree。
3) options:过滤类型的选项。
4) op:过滤操作,可能的值:contains、equal、notequal、beginwith、endwith、less、lessorequal、greater、greaterorequal。

代码实例:

      
      
  1. $('#dg').datagrid('enableFilter');
  2. $('#dg').datagrid('enableFilter', [{
  3. field:'listprice',
  4. type:'numberbox',
  5. options:{precision:1},
  6. op:['equal','notequal','less','greater']
  7. }]);
addFilterRule param 添加一个过滤规则。
      
      
  1. $('#dg').datagrid('addFilterRule', {
  2. field: 'desp',
  3. op: 'contains',
  4. value: 'easyui'
  5. });
removeFilterRule field 移除过滤规则。
如果 'field' 参数未指定,移除所有的过滤规则。
doFilter none 基于过滤规则执行过滤。
getFilterComponent field 在指定的域上获取过滤组件。

示例

$("#detailedmappingGrid").datagrid({
		pagination:true,
		fit:true,
		fitColumns:true,
		toolbar:'#detailedmappingToolbar',
		singleSelect:true,
		checkOnSelect:true,
		selectOnCheck:true,
		pageNumber:1,
		pageSize:15,
		pageList:[10,15,20,50,100], // 可选翻页列表
		singleSelect:true,
		remoteSort:false,
		sortName:'',
		sortOrder:'asc',
		remoteFilter: false,
	    	filterDelay: 400,
	   	filterRules: [],
		columns:[[{field:"id",hidden:true},
			{field:'mappingTypeId',hidden:true},
			{field:'tableInId',hidden:true},
			{field:'tableOutId',hidden:true},
			{field:'',title:'',checkbox:true},
			{field:'tableInCode',title:"内部字典DIC码",width:100,align:'center'},
			{field:'tableInName',title:"内部字典名称",width:200,align:'center'},
			{field:"tableOutName",title:"外部字典名称",width:200,align:'center'},
			{field:"tableOutCode",title:"外部字典DIC码",width:100,align:'center'},
			{field:"operation",title:'操作',width:50,align:'center',formatter:
				function(value,row,index){
					return "<a  href='#' οnclick='detailed("+index+")'>详细映射</a>";
			 	}}
			]]
});

$("#detailedmappingGrid").datagrid('enableFilter');


添加一个过虑条件

//添加过滤器
$('#detailedmappingGrid').datagrid('addFilterRule', {
					        	field: 'tableInCode',
					        	op: 'contains',
					        	value: '入院途径'
					        });
//执行过滤
$('#detailedmappingGrid').datagrid('doFilter');


设置过滤框为下拉框

默认情况下所有的过虑框都是文本框,但有些情况下我们需要下拉框、数字框、日期框等组件作为过滤条件,那么该怎么处理呢?

组件本身并没有提供属性可以支持其他类型的过滤框,但它提供了一个方法,enableFilter方法,该方法创建并启用过滤功能,其参数可以指定列的过滤框特征。

例如:指定上面的内部字典为下拉框过滤:

$('#detailedmappingGrid').datagrid('enableFilter', [{
	field:'tableInName',
	type:'combobox',
	options:{data:[{'id':'1','text':'测试'},{'id':'2','text':'测试'1}]},
	op:['contains']
}]);


注意:在IE浏览器下,所有hidden隐藏的列会影响显示的列的宽度,导致没吃刷新datagrid表格,表格都会变形,所以即便是hidden的列也应指定宽度,这样,每次刷新都会根据计算重新划分每列宽度。例如:

columns:[[
		{field:"id",hidden:true,width:100},
	  	{field:'mappingTypeId',hidden:true,width:100},
          	{field:'tableInId',hidden:true,width:100},
	 	{field:'tableOutId',hidden:true,width:100},
	 	{field:'',title:'',checkbox:true},
		{field:'tableInCode',title:"内部字典DIC码",width:100,align:'center'},
		{field:'tableInName',title:"内部字典名称",width:200,align:'center'},
		{field:"tableOutName",title:"外部字典名称",width:200,align:'center'},
		{field:"tableOutCode",title:"外部字典DIC码",width:100,align:'center'},
		{field:"operation",title:'操作',width:50,align:'center',formatter:
			function(value,row,index){
				return "<a  href='#' οnclick='detailed("+index+")'>详细映射</a>";
			 }}
	]]


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 31
    评论
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值