jQuery MiniUI

标题: 如何设计出类似于课程表样式,列名是 [打印本页]

作者: 11shimuxin    时间: 2017-11-18 13:40:52     标题: 如何设计出类似于课程表样式,列名是

本帖最后由 11shimuxin 于 2017-11-18 13:45 编辑

  如图所示[attach]10157[/attach]列数不固定,列名由后台数据库从表A查询得出,有几条显示几列,每行第一列从表B查询得出,有几 条数据显示几行,交互点是复选框。我现在页面虽然做出来,但是选中复选框的时候同时选中了一整行。前台代码如下:[attach]10158[/attach]是否考虑的思路出现偏差?还有如何来判断复选框是否选中,因为会有多个同时选中
作者: felt    时间: 2017-11-20 10:22:20

用checkboxcolumn,这样列才和数据相关联,可以看一下附件的例子。可以设置falseValue和trueValue来和数据关联
[attach]10161[/attach]

作者: 11shimuxin    时间: 2017-11-20 15:00:46

felt 发表于 2017-11-20 10:22
用checkboxcolumn,这样列才和数据相关联,可以看一下附件的例子。可以设置falseValue和trueValue来和数据关 ...

checkboxcolumn选中具体与什么有关?因为我换了很多种写法,仍然是选中某 一个,该行也一起选中了。是否与field的值有关?
作者: dforce    时间: 2017-11-20 15:20:41

11shimuxin 发表于 2017-11-20 15:00
checkboxcolumn选中具体与什么有关?因为我换了很多种写法,仍然是选中某 一个,该行也一起选中了。是否 ...

每列都和field对应的字段绑定,当然和field有联系,你这所有列都需要不同的field.
作者: 11shimuxin    时间: 2017-11-20 15:29:45

dforce 发表于 2017-11-20 15:20
每列都和field对应的字段绑定,当然和field有联系,你这所有列都需要不同的field. ...

那我field值可以以数组的方式获取吗?
function createGrid() {
                        for (var i = 0; i < danweinameArr.length; i++) {
                                (function(x) {
                                        var temp = ', {field: "danweiguid["'+ i +'"]", width: 120, headerAlign: "center", header: "' + danweinameArr[x] + '", type: "checkboxColumn", trueValue: 1 , falseValue: 0 }';
                                        columns = columns + temp;
                                })(i)

                        }
                        columns = columns + ']';
                        grid.set({
                                columns : mini.decode(columns)
                        });
                       
                        grid.load();
                       
                };

我以这种方式进行拼接danweiguid的时候一直报未定义,因为这边前后两个值是一一对应的,但一直不成功

作者: 11shimuxin    时间: 2017-11-20 15:53:23

dforce 发表于 2017-11-20 15:20
每列都和field对应的字段绑定,当然和field有联系,你这所有列都需要不同的field. ...

自检了一下,是我在进行danweiguid拼接的时候多了双引号,现在已经写出来了,谢谢版主
作者: 11shimuxin    时间: 2017-11-20 16:26:56

dforce 发表于 2017-11-20 15:20
每列都和field对应的字段绑定,当然和field有联系,你这所有列都需要不同的field. ...

还有一个问题,我现在需要获取选中的多行数据,但是我控制台打印的数据只显示我最后选中的那行数据,之前选中的数据都没有显示出来,有什么解决办法么?
作者: dforce    时间: 2017-11-20 16:43:17

11shimuxin 发表于 2017-11-20 16:26
还有一个问题,我现在需要获取选中的多行数据,但是我控制台打印的数据只显示我最后选中的那行数据,之前 ...

我们有获选选中多行的方法
var selecteds=grid.getSelecteds();
作者: 11shimuxin    时间: 2017-11-21 10:12:14

dforce 发表于 2017-11-20 16:43
我们有获选选中多行的方法
var selecteds=grid.getSelecteds();

我用的就是这个方法,但是获取到的只是最后一行的数据

作者: felt    时间: 2017-11-21 10:25:51

11shimuxin 发表于 2017-11-21 10:12
我用的就是这个方法,但是获取到的只是最后一行的数据

获取到的是数组,每项都是行。
作者: 11shimuxin    时间: 2017-11-21 10:42:54

felt 发表于 2017-11-21 10:25
获取到的是数组,每项都是行。

[attach]10175[/attach]我这边选中了两行,并在控制台打印输出,长度为1,获取的是最后我选中的那行数据,并没有显示多行数据,第一行数据没有了

作者: felt    时间: 2017-11-21 15:09:57

11shimuxin 发表于 2017-11-21 10:42
我这边选中了两行,并在控制台打印输出,长度为1,获取的是最后我选中的那行数据,并没有显示多行数据,第 ...

你这边只选中了一行,行选中是有背景色的,上面那行并没有选中
你这里要获取这两个checkbox都勾选的行应该这样获取
var rows=grid.findRows(function(row){
     if(row.这列的field==1) return true;
})
作者: 11shimuxin    时间: 2017-11-22 10:05:32

felt 发表于 2017-11-21 15:09
你这边只选中了一行,行选中是有背景色的,上面那行并没有选中
你这里要获取这两个checkbox都勾选的行应 ...

你好,针对checkboxColumn,如果我设置trueValue ="1", falseValue="0",那么我勾选之后值会别为1,取消勾选值变为0.如果不设置trueValue和falseValue,勾选之后的值为true, 取消勾选就是false.当我在未设置trueValue的情况下,后台给某列设置true的时候,前台页面是选中状态但未显示打钩,如果设置了trueValue ="1",我后台给某列设为1,前台是正常显示的。但有一个问题,我在前台获取的数据的时候,"1"这个出现的概率太高,我不能根据1去获取我需要的值,而我利用"true"可以准确获取我所需要的值,请问这个有什么解决办法吗?
作者: dforce    时间: 2017-11-22 12:45:38

11shimuxin 发表于 2017-11-22 10:05
你好,针对checkboxColumn,如果我设置trueValue ="1", falseValue="0",那么我勾选之后值会别为1,取消勾 ...

那可以按你的值来设置啊,比如trueValue="true" falseValue="false"
作者: dforce    时间: 2017-11-22 12:45:38

11shimuxin 发表于 2017-11-22 10:05
你好,针对checkboxColumn,如果我设置trueValue ="1", falseValue="0",那么我勾选之后值会别为1,取消勾 ...

那可以按你的值来设置啊,比如trueValue="true" falseValue="false"
作者: 11shimuxin    时间: 2017-11-22 14:06:34

dforce 发表于 2017-11-22 12:45
那可以按你的值来设置啊,比如trueValue="true" falseValue="false"

好的,谢谢。已经写出来了




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2