`

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

    博客分类:
  • JS
 
阅读更多

转载:http://www.iteye.com/topic/1126901

这几天在做项目的权限管理模块,其中菜单管理的前台采用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);
} 

 

分享到:
评论

相关推荐

    TreeGrid控件及Demo源码.zip

    在本压缩包"TreeGrid控件及Demo源码.zip"中,包含的应该是关于TreeGrid的实现代码示例,帮助开发者理解和学习如何在实际项目中应用TreeGrid。 TreeGrid控件的主要特点和功能包括: 1. **层次结构**:TreeGrid能够...

    treegrid控件

    通过分析和学习这个示例项目,你可以了解到树形Grid控件的具体实现细节,包括数据结构的处理、事件监听、UI渲染等方面的知识,对于理解并自定义此类控件非常有帮助。 总结来说,树形Grid控件是一种强大的数据展示...

    TreeGrid控件及Demo源码

    TreeGrid控件及Demo源码 支持Asp.net2.0,MS Ajax,Postback,CallBack(可用来加载子节点),Event(Select,Expend,Collaspe,RowCreate,RowDataBound,RowCommand),DataBind 使用方法与TreeView和GridView相似。 ...

    Treegrid控件基于jquery

    综上所述,基于jQuery的Treegrid控件是Web开发中一个强大而实用的工具,它能够高效地展示和操作层次化数据,为用户带来直观易用的界面。通过合理的配置和优化,Treegrid能够成为任何项目中不可或缺的一部分。

    TreeGrid 在Asp.net中实现的实例

    在ASP.NET页面上,我们需要添加对应的TreeGrid控件,并设置必要的属性。如果是使用JavaScript库,可能需要一个基本的HTML表格结构。 2. **数据绑定** 配置数据源,如SQLDataSource或ObjectDataSource,将数据绑定...

    TreeGrid树形表格控件可用版

    7. **自定义样式和模板**:TreeGrid控件可能支持自定义单元格样式和模板,以实现更复杂的界面布局和显示效果。 8. **性能优化**:对于大数据量的TreeGrid,需要考虑性能优化,如延迟加载、虚拟化等技术,以避免内存...

    TreeGrid 树形列表 Asp.net自定义控件

    为了实现和使用这个自定义TreeGrid控件,你需要打开`TreeGrid.sln`,编译项目,然后将编译后的DLL引用到你的ASP.NET应用程序中。通过阅读`readme.txt`获取具体使用方法,参考`Demo`目录下的示例代码理解控件的用法,...

    MVC+EasyUITreeGrid懒加载示例

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

    WinForm控件TreeGrid源码.zip

    `TreeGrid`控件就是一种结合了树形视图(Tree)和数据网格(Grid)功能的控件,它能够同时展示层次结构的数据,并且允许用户进行数据的编辑和操作。在Windows Forms应用中,`TreeGrid`控件可以极大地提高用户体验,...

    TreeGrid控件及Demo

    这通常涉及到如何在ASP.NET环境中集成和配置TreeGrid,以及如何通过编程实现各种功能,例如加载数据、处理用户交互和自定义显示样式。 描述中提到的"九网互联的ASP.NET空间"是一个可能的托管平台,它支持ASP.NET的...

    Ext.ux.tree.treegrid异步加载

    本文详细介绍了如何使用ExtJS中的`Ext.ux.tree.TreeGrid`组件实现异步加载功能,包括前端配置和后端数据处理两个方面。通过这种方式可以有效提升用户体验,同时减轻服务器的压力。在实际开发过程中,还需要根据具体...

    WPF TreeGrid

    8. 分页和排序:虽然TreeGrid本身不直接支持分页和排序,但可以通过组合其他控件和逻辑实现。例如,使用PagingControl进行分页,使用ICollectionView进行排序。 9. 编辑功能:DataGrid可以提供单元格编辑功能,允许...

    treegrid.zip_treeGrid wpf_treegrid_treegrid wpf c#_wpf 树状表格_wpf树

    6. **实现数据加载和异步更新**:根据实际需求,可能需要实现异步加载数据,以提高性能和用户体验。 在“TreeGrid1”文件中,可能包含了实现这些功能的XAML和C#代码。例如,XAML文件可能会有如下结构: ```xml ...

    GridView+Jquery实现的TreeGrid

    如果"功能非常简单"指的是这个示例没有包含所有高级特性,那么基础的实现可能只包括基本的展开/折叠、点击事件处理和数据加载。 总的来说,"GridView+Jquery实现的TreeGrid"是一个结合了前后端技术,实现高效、动态...

    WPF TreeGrid树形表格

    TreeGrid控件通常由多个节点组成,每个节点可以展开或折叠,展示其子节点。这些节点可以包含一个或多个数据项,每个数据项都可以映射到表格的一行。通过这种方式,TreeGrid能够提供一种直观的方式来探索和操作多级...

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

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

    checkbox treegrid,重写treegrid,第一列为checkbox

    在实际应用中,我们可能会遇到原生TreeGrid控件无法满足需求的情况,比如性能瓶颈、功能限制或者样式定制,这时就需要对其进行重写。重写可能涉及到以下几个关键步骤: 1. **分析需求**:明确重写的原因,是为了...

    GridView+Jquery实现的TreeGrid_C# GUI控件.rar

    "GridView+Jquery实现的TreeGrid_C# GUI控件.rar"这个压缩包文件,很显然,它提供了一个解决方案,将传统的GridView扩展为可以展示树状结构数据的TreeGrid。 首先,让我们详细了解一下GridView。GridView是ASP.NET...

    bootstrap-treeview树节点实现动态加载(懒加载)

    动态加载(也称为懒加载)是一种优化性能的技术,只在用户需要时才加载数据,而不是一次性加载所有数据,这对于处理大量数据或层级结构尤其有用,可以显著提升页面加载速度和用户体验。 本项目在官方Bootstrap ...

Global site tag (gtag.js) - Google Analytics