`
xmdxzyf
  • 浏览: 24746 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

easyui treegrid条件查询和重加载的实现

阅读更多

    这几天在做项目的权限管理模块,其中菜单管理的前台采用jquery1.7.2和Jquery easyui 1.2.6的treegrid控件来实现查询和和分页功能。

    可是在实现这两个功能点时发现treegrid控件没支持类似datagrid的load和reload方法,网络上有的很大一部分是先通过ajax获取数据,然后调用treegrid的reload方法进行渲染。这种方案有个不好的地方就是查询的时候你得自己手动设置当前页和每页显示条数,比较麻烦,浪费了pagination控件封装的分页功能。

    在测试中发现,pagination控件根据输入的页数可以直接获取数据库中当前指定页的内容。于是想到了,treegrid的重加载可以通过自动触发pagination控件页数输入框的keydown事件来实现,而查询即可通过先设置treegrid options的queryParams属性来实现查询信息的设置然后加载第一页信息就可以了。

   treegrid的查询和重载的源码如下:

 

$(document).ready(function(){
	$('#menuItemGridId').treegrid({
		url:"menuCtrl.action?cmd=getMenuItemTree" ,
		queryParams:getQueryParams("menuItemSearchId"),
		idField:'menuItemId',
		treeField:'displayName',
		pageList: [5,10,15],
		pagination:true,
		fitColumns:true,
		rownumbers: true,
		animate:true,
		collapsible:true,
		fitColumns:true,
		showFooter:true
	});
	
});

//查询功能
//menuItemSearchId为查询条件所在的form的id
function searchMenuItem(){
	$("#menuItemGridId").treegrid("options").queryParams = getQueryParams("menuItemSearchId");
	autoLoad($("#menuItemGridId").treegrid("getPager"),1);
}

/**
 * 自动触发分页的加载操作

 * @param pager  各个控件对应的pagination组件
 */
function autoLoad(pager,pageNumber){
	var event = jQuery.Event("keydown");//模拟一个键盘事件        
	event.keyCode = 13;//keyCode=13是回车
	
	pager.find('input.pagination-num').val(pageNumber);	//设置跳转页为当前指定页面
	
	pager.find('input.pagination-num').trigger(event);
}


/**
 * 将指定form参数转换为json对象
 */
function getQueryParams(conditionFormId){
	var searchCondition = getJqueryObjById(conditionFormId).serialize();
	var obj = {};
    var pairs = searchCondition.split('&');
    var name,value;
    
    $.each(pairs, function(i,pair) {
	    pair = pair.split('=');
	    name = decodeURIComponent(pair[0]);
	    value = decodeURIComponent(pair[1]);
	    
	    obj[name] =  !obj[name] ? value :[].concat(obj[name]).concat(value);              //若有多个同名称的参数,则拼接
    });
    
    return obj;
}

/**
 * 根据id获取jquery对象
 * @param id
 */
function getJqueryObjById(id){
	return $("#" + id);
} 

 

   

分享到:
评论

相关推荐

    解决 easyui treegrid 批量展开和关闭卡顿问题。

    和 $('#tg').treegrid('expandAll');会造成严重卡顿, 解决方案: 数据增加属性 state:closed, 即可默认收起,反之展开,需再展开时,将加载的data数据中的state属性变更,再重新执行 $('#tg').treegrid('load...

    MVC easyui treegrid后台绑定树

    在本例中,我们看到了MVC模式的一个具体实现,即C# MVC框架下结合EasyUI TreeGrid控件的应用。 ### 二、EasyUI TreeGrid简介 **EasyUI**是一个基于jQuery的开源UI库,提供了一套完整的前端组件来帮助开发者快速...

    EASYUI TREEGRID异步加载数据实现方法

    在EASYUI TreeGrid中,异步加载数据是一项重要的功能,允许用户在需要时动态获取数据,提高应用的性能和用户体验。 异步加载数据通常涉及到以下几个关键点: 1. **配置URL**:在TreeGrid的初始化参数中,`url`属性...

    jQuery EasyUI的TreeGrid查询功能实现方法

    总结来说,通过使用jQuery EasyUI的TreeGrid组件结合AJAX技术实现的查询功能,可以大大提高Web应用中层次数据处理和展示的效率和用户体验。这对于Web开发者来说,是一个非常实用和需要掌握的技能点。对于想要了解或...

    数据结构之easyui-treegrid

    EasyUI TreeGrid是一种基于JavaScript的数据展示控件,它结合了表格和树形结构的特点,适用于展示层次关系的数据。在这个场景中,我们将深入探讨EasyUI TreeGrid的使用方法和相关知识点。 首先,EasyUI TreeGrid是...

    easyui-treegrid冻结右侧列插件.zip

    在 EasyUI 中,TreeGrid 是一个结合了 Tree 和 Grid 功能的组件,既能展示层级数据,又能进行多列数据的展示和排序。然而,对于大数据量且需要频繁查看左侧固定列的情况,用户可能需要冻结列的功能,以便快速对比和...

    MVC+EasyUITreeGrid懒加载示例

    MVC+EasyUITreeGrid懒加载示例,主要对EasyUI中TreeGrid组件的使用进行演示。对于正在学此组件的童鞋,不防花个几分钟看一下。本文主要演示:TreeGrid的简单应用、懒加载方法、控件数据格式。

    EasyUI的treegrid组件动态加载数据问题的解决办法

    通过以上步骤,我们可以实现EasyUI TreeGrid组件根据查询条件动态加载数据的功能。这种方式避免了对`treegrid('reload')`方法的直接依赖,同时也符合异步数据处理的最佳实践。在实际开发中,根据项目需求,你可能还...

    Easyui Treegrid改变默认图标的方法

    Easyui Treegrid是一款基于jQuery的UI库,用于创建具有树形结构的表格。它结合了表格和树的优点,使得数据展示既清晰又有层次感。在实际应用中,我们可能需要根据业务需求定制Treegrid的外观,包括改变其默认的图标...

    SSH+Easyui之TreeGrid树形展现数据

    2. **Service层设计**:根据业务需求,设计服务层接口和实现,用于获取树形结构数据。 3. **Hibernate DAO**:编写DAO类,使用HQL或SQL查询数据库,获取树形数据。 4. **数据转换为JSON**:将Service层获取的数据...

    easyui的Treegrid扩展

    EasyUI的Treegrid扩展是一种对原生EasyUI TreeGrid组件的功能增强,主要目的是提供更加灵活的数据展示和操作方式。在传统的TreeGrid中,数据通常是以树状结构展示,每一行都可以展开或折叠,显示或隐藏子节点。然而...

    jQuery Easyui Treegrid实现显示checkbox功能

    本文将详细介绍如何在 jQuery Easyui Treegrid 中实现显示和管理复选框的功能。 首先,要实现 Treegrid 中的复选框功能,我们需要在列定义(columns)中增加一个字段,该字段将用于显示复选框。例如,我们可以创建...

    easyUI-树形表格(TreeGrid)实现无限层级菜单

    总结,实现EasyUI的树形表格(TreeGrid)功能,尤其是无限层级菜单,涉及到前端的数据结构设计、TreeGrid的配置、服务器端的数据获取与分页处理、JavaScript的事件监听和交互,以及数据库的初始化。通过合理的步骤和...

    EasyUI的TreeGrid的过滤功能的解决思路

    在解决这个问题时,我们首先想到的是使用EasyUI的TreeGrid的loadData方法来加载数据,然后使用 JavaScript来实现过滤功能。我们可以使用AJAX来查询数据,然后将查询结果加载到TreeGrid中。下面是相关的代码: ...

    jquery easyui treegrid demo 详解

    可以使用 `queryParams` 参数设置查询条件,EasyUI 会自动发送这些条件到服务器。例如,按名称查询: ```javascript $('#treegrid').treegrid('reload', { queryParams: { name: '查询关键字' } }); ``` **四、...

    easyui资料

    这里面包含easyui的chm文档easyui-1.3.5.zip,datagrid项目案例,SSH和easyui整合的案例,easyui异步加载tree,tree和datagrid共用的例子,改好的兼容jQueryUI1.10.3的easyui,另外加一个primeui-10资料。资源分定为1分...

Global site tag (gtag.js) - Google Analytics