`

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 的一个重要组件,它可以帮助开发者轻松地展示、操作和...

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

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

    jquery easyui datagrid demo 详解

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

    jquery easyui datagrid 教程

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

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

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

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

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

    easyui datagrid 表格 打印

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

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

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

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

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

    easyui datagrid 动态隐藏显示列

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

    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