`

row selection for jquery easyui datagrid

阅读更多

    easyui的datagrid中为我们提供了行选择功能的api,不知是否浏览器不兼容的原因,无论在firefox还是在ie下面默认提供的行选择功能不是非常好用。为获取共选择了多少行,根据api获取的row count和我们实际界面上的row count总是不相等,这样就为修改,删除等功能制造了麻烦。

    

     使用easyui默认提供的行选择api分别获取选择的行,行数,每行数据的id字符串,对选择的行赋值到对应的form表单元素中:

var row = $('#grid').datagrid('getSelections');  //acquire selected rows
var count=row.length;            //acquire the count of the selected rows
var ids = '';
 $.each(row, function(i, rowval) {
      if (i)
         ids += ',';
         ids += rowval.id;
 })                                            //acqire selected row ids string
var selrow = $('#grid').datagrid('getSelected'); //acquire the first selected row
$('.easyui-validatebox').each(function(index){  //asign the row value to the form input
     $(this).val(selrow[this.id]);                     
 }); 

 但是$('#grid').datagrid('getSelections')获取的结果和实际界面上不符,这应该算是easyui中的一个bug吧。

更正:$('#grid').datagrid('getSelections')获取的结果和实际界面是相符合的,需要

 

$('#grid').datagrid({title: mygrid.title,
				iconCls:'icon-save',
				width:650,
				height:667,
				url:mygrid.url,
				sortName: 'id',
				sortOrder: 'asc',
				remoteSort: false,
				idField:'id',
				columns: mygrid.columns,	
				pagination:true,
				noheader:false,
				rownumbers:true,
				toolbar: mygrid.toolbar
});

 中指定正确的idField。(2011-3-7)

因此要解决一下一系列问题:

(1)根据界面选择获取选择rows的总行数。

var count=$('.datagrid-row-selected td:nth-child(1) div').length;

 (2)根据界面选择获取选择row的ids字符串

var ids='';
$('.datagrid-row-selected td:nth-child(3) div').each(function(i) {
    if (i)
    ids += ',';
    ids += $(this).text();
});

 (3)根据选择的行为form表单赋值。有两种方式

    第一种方式,根据grid界面的显示值获取选择行的值。但是这种方式对于不在grid中显示的hidden域无法赋值

var rowval=[];
$('.datagrid-row-selected td div').each(function(i) {
    if (i!=0 && i!=1)
    rowval.push($(this).text());
});
$('.easyui-validatebox').each(function(index){  
    $(this).val(rowval[index]);
}); 

    第二种方式,需要grid通过ajax load 数据的时候,获取。通过在jquery.easyui.min.js中第6347行的函数中增加一个全局变量datastore

 

$.ajax({type:opts.method,url:opts.url,data:_471,dataType:"json",success:function(data){
    datastore=data;
    ........

      在使用的时候首先获得选择行对应的index

 var row_index;
 $('.datagrid-row-selected td:nth-child(1) div').each(function(i) {
	row_index = $(this).text();
});
		  

    然后赋值

 var rowval=datastore.rows[row_index];
	$('.easyui-validatebox').each(function(index){  
	$(this).val(rowval[this.id]);
}); 
  • 大小: 5.2 KB
分享到:
评论

相关推荐

    jquery easyui datagrid demo

    这个“jquery easyui datagrid demo”包含了一些关于如何使用 jQuery EasyUI 中 Datagrid 组件的示例和相关文档,帮助我们理解和应用 Datagrid。 首先,`datagrid.doc` 文件很可能是 Datagrid 的简要说明文档,它...

    扩展 jQuery EasyUI Datagrid 数据行鼠标悬停离开事件完整版Demo下载

    jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) Demo 扩展 jQuery EasyUI Datagrid 数据行鼠标悬停离开事件,源码奉献!!!

    jQuery EasyUI编辑DataGrid用combobox实现多级联动

    在jQuery EasyUI中,DataGrid是一种常用的表格展示控件,它可以与各种编辑器结合使用,如combobox(下拉框)来实现更丰富的交互功能。本文主要探讨的是如何利用jQuery EasyUI的DataGrid和combobox组件实现多级联动的...

    easyUI datagrid rownumber自适应宽度扩展JS

    easyUI datagrid 自动调整行号大小

    jquery easyui datagrid性能优化

    jquery easyui datagrid 性能优化,优化后可快速提升查询性能。唯一的缺陷就是不支持可编辑grid了。只需要在引入easyui.js后面引入此js即可。

    easyui datagrid 数据导出到Excel

    在IT行业中,EasyUI Datagrid是一款基于jQuery的前端数据展示组件,它提供了丰富的表格功能,如排序、分页、过滤等。在实际工作中,我们经常需要将这些展示的数据导出到Excel文件,以便进行进一步的分析或存储。下面...

    JqueryEasyUI DataGrid例子

    在网页开发中,jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了丰富的用户界面组件,如 DataGrid,用于创建交互式、数据驱动的表格。DataGrid 是 EasyUI 的一个重要组件,它可以帮助开发者轻松地展示、操作和...

    JQuery EasyUI DataGrid服务端分页时行号不延续的解决方法

    JQuery EasyUI DataGrid服务端分页加载数据后,DataGrid行号不能延续,总是重新由1开始。因为服务端分页取回的是单页数据,通过LoadData方法加载数据后,pageNumber属性被初始化为1,因此行号总是重新由1开始。现在...

    jquery easyui datagrid demo 详解

    jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列丰富的组件,使得开发者可以轻松构建用户界面,而 Datagrid 是其中非常重要的一个组件,常用于数据展示和管理。本篇文章将详细解析 jQuery EasyUI ...

    jquery easyui datagrid 教程

    jQuery EasyUI Datagrid 是一个基于 jQuery 和 EasyUI 框架的数据网格组件,它提供了丰富的数据展示和操作功能,常用于构建数据密集型的Web应用。这个教程将深入讲解其核心概念、用法以及常见应用。 一、jQuery ...

    easyui datagrid editor回车切换单元格示例,可参考

    easyui datagrid editor回车切换单元格示例,适合熟悉easyui但又不懂如何做的人员,可能参考一下源码JS。

    easyui datagrid 增加鼠标悬停弹窗事件

    在IT领域,EasyUI是一个基于JavaScript和jQuery的前端框架,它为开发者提供了丰富的组件和样式,使得构建用户界面变得更加便捷。在本示例中,我们关注的是如何在EasyUI的Datagrid组件上添加一个特殊功能:当鼠标悬停...

    easyui datagrid 表格 打印

    在IT领域,EasyUI Datagrid是一款基于jQuery的前端数据展示组件,它提供了丰富的表格功能,如数据分页、排序、筛选等。当我们需要将Datagrid中的数据进行打印时,可能会遇到一些挑战,因为通常默认的浏览器打印功能...

    easyui datagrid在编辑状态下更新列的值

    在使用EasyUI框架开发Web应用时,Datagrid组件是一个非常重要的元素,它提供了一种方便的方式来展示和操作数据。在标题“easyui datagrid在编辑状态下更新列的值”中,我们关注的是如何在Datagrid的编辑模式下动态地...

    easyui datagrid 动态隐藏显示列

    jquery easyui 扩展 datagrid 自定义动态隐藏显示列

    解决EasyUIdataGrid列比较多,无数据,列展现不全

    EasyUI是一个基于jQuery的用户界面插件集合,它简化了Web应用的前端开发工作,使得开发者能够更加专注于业务逻辑的实现而非UI的构建。其中,dataGrid是EasyUI中一个非常重要的组件,用于展示表格数据,支持排序、...

    easyui datagrid 右冻结

    EasyUI是一个基于jQuery的UI库,提供了丰富的组件,包括datagrid,它是一个用于展示表格数据的组件。在某些场景下,用户可能希望在滚动表格时,某些重要的列(通常是标题或标识列)始终保持可见,这就是“右冻结”的...

    easyui datagrid中实现上下左右、回车切换单元格

    easyui datagrid中实现上下左右、回车切换单元格easyui datagrid中实现上下左右、回车切换单元格easyui datagrid中实现上下左右、回车切换单元格

    JS EasyUI DataGrid动态加载数据

    JS EasyUI DataGrid是一款基于jQuery和EasyUI框架的数据表格组件,它提供了丰富的功能,如数据分页、排序、过滤和自定义操作等。在实际应用中,动态加载数据是DataGrid的一个重要特性,允许用户在需要时加载更多的...

    jQuery EasyUI datagrid实现本地分页的方法

    jQuery EasyUI datagrid是一个基于jQuery和EasyUI的UI组件库,提供了丰富的界面组件,其中的datagrid组件用于创建数据表格。 传统的分页方法通常是由后端服务器完成,即将全部数据检索出来后,由服务器端根据分页...

Global site tag (gtag.js) - Google Analytics