easyui-datagrid 获取所有行列值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了easyui-datagrid 获取所有行列值相关的知识,希望对你有一定的参考价值。

$(function()
//实现对DataGird(表格)控件的绑定操作

$('#grid').datagrid( //定位到Table标签,Table标签的ID是grid
url: '../json/xcxl.json', //指向后台的Action来获取当前菜单的信息的Json格式的数据
iconCls: 'icon-view',
nowrap: true,//不换行
width: 800,
autoRowHeight: false,//自动调整行高
striped: true,
collapsible: false,//不可折叠
/* pagination: true,
pageSize: 10,//一页显示的行数
pageList: [10,20,30],//可选择的一页显示的行数,默认10
rownumbers: true,//显示行号 */
fitColumns: true,//列的宽度自动填充
columns: [[
title: '操作', field: 'cz',idField: 'cz', width: 100,align: 'center',formatter:operate,
title: '序列', field: 'xl',idField: 'xl',idField:'xl', width: 50 ,align: 'center',editor: type: 'validatebox', options: required: true,
title: '出发站', field: 'cfz',idField: 'cfz', width: 100,align: 'center',formatter:setRoutingFrom,
title: '耗时(时)', field: 'hs',idField: 'hs' ,textField:'hs', width: 50 ,align: 'center',editor: type: 'validatebox', options: required: true
]]
);
);
这是我代码,当我点击页面提交按钮时怎么获取到所有列的值,比如序列,出发站,耗时,
var rows = $('#grid').datagrid("getRows"); 我这里获取所有行,
for(var i=0;i<rows.length;i++)

alert(rows.hs);

这里打印出来的是 undefined ,请问具体要怎么才能拿到值,万分感谢!

easyui-datagrid怎么获取所有行列值方法:

1、定义id为datagrid的easyui-datagrid,并将其置于id为div-dg的div内;

2、定义datagrid的列时,使用下面的方式为datagrid添加文本框列,并将其value设置为100;

3、使用如下的方式获取文本框列的第一个值,使用eq(index)方法可以获取第任意个文本框的值;

4、结果并未能如愿,查看生成的html源代码;

5、发现,生成的文本框列位于id为div-dg的div内,而不是id为datagrid的table下面,所以才会出现前面所述的结果。正确的获取文本框列的值的方法如下。

如需获取每一行的行列值,内容如下:

参考技术A rows.hs 不对 你试试rows[i].hs追问

一样的,不行!

追答

那你debug js 吧 看看 js有没有错 rows值拿没拿到 拿到的话 理论上说rows[i] .hs 是没有问题的

参考技术B getRows好像只是获得多少行,不是数据。
需要你使用getData来获得

转个firebug。
console.info(rows);
你就能看到rows到底是什么了

GROUP BY 并将列值放入单行列

【中文标题】GROUP BY 并将列值放入单行列【英文标题】:GROUP BY and get the columns values into single row column 【发布时间】:2021-06-25 01:52:19 【问题描述】:

我正在考虑是否可以获取使用 GROUP BY room 的所有值。例如,我有一个名为 subject 、 room 和 class 的表

表格主题

   subject_id | subject_name
    -------------------
        1     | math
        2     | science
        3     | english

桌子房间

    room_id | room_name
   -------------------
       1    | sunflower
       2    | cornflower
       3    | redflower

桌子教室

    id | room_id | subject_id 
   -------------------
    1  | 1       | 1          
    2  | 1       | 2
    3  | 1       | 3

现在是查询。不确定我使用的查询是否正确或足够的查询..但输出的查询显示预期不是

SELECT * FROM clas-s-room 
LEFT JOIN subject ON clas-s-room.subject_id = subject.subject_id
LEFT JOIN room ON clas-s-room.room_id = room.room_id 
GROUP BY room_name

现在我想要这样的输出

教室

room_name | subject_name 
------------------------
sunflower | math
          | science
          | english

它应该按向日葵分组为一行

【问题讨论】:

这不是 GROUP BY 所做的。考虑处理应用代码中数据显示的问题 哦,抱歉,以为是group by。不知道能不能达到我想要的输出? 【参考方案1】:

GROUP BY 旨在减少行数并为这些行启用聚合。在您的情况下,以下查询 without group by 产生:

SELECT room_name, subject_name
FROM clas-s-room 
LEFT JOIN subject ON clas-s-room.subject_id = subject.subject_id
LEFT JOIN room ON clas-s-room.room_id = room.room_id 

+-----------+--------------+
| room_name | subject_name |
+-----------+--------------+
| sunflower | english      |
| sunflower | math         |
| sunflower | science      |
+-----------+--------------+

所以使用GROUP BY 没有多大意义,但如果我们这样做,结果如下:

SELECT room_name, subject_name
FROM clas-s-room 
LEFT JOIN subject ON clas-s-room.subject_id = subject.subject_id
LEFT JOIN room ON clas-s-room.room_id = room.room_id 
GROUP BY room_name, subject_name

+-----------+--------------+
| room_name | subject_name |
+-----------+--------------+
| sunflower | english      |
| sunflower | math         |
| sunflower | science      |
+-----------+--------------+

请注意,每行的值都显示在两列中。这既是预期的,也是期望的。

GROUP BY 不是一个“表示”工具,它将抑制第一列中的值输出,这是一个“报告工具”或“表示层”应该处理的东西.

demo

【讨论】:

以上是关于easyui-datagrid 获取所有行列值的主要内容,如果未能解决你的问题,请参考以下文章

easyui-datagrid如何获取 空白行

GROUP BY 并将列值放入单行列

如何获取datagridview当前行列值?

easyui-datagrid单元格事件

easyui-datagrid通过action从数据库获取数据的关键代码

SQL:获取行列值的总和