jQuery MiniUI

 找回密码
 立即注册
查看: 1817|回复: 7
打印 上一主题 下一主题

datagrid中不能单独编辑结束时间 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2016-11-4 15:49:56 |只看该作者 |倒序浏览
datagrid中,结束时间一定要先编辑开始时间之后才能编辑,不能单独更改结束时间。我想要实现的功能是可以随便修改某一行的值,请问这个问题怎么解决呢?
开始时间和结束时间的代码:
<div id="datagrid_holiday" class="mini-datagrid" style="width:99.9%;height:99%"
                        idField="id" allowResize="true" pageSize="20" editNextOnEnterKey="true"
                        allowCellEdit="true" allowCellSelect="true" multiSelect="true" editNextRowCell="true"
                        showPager="false" allowCellValid="true" oncellvalidation="onHolidayCellValidation">
                        <div property="columns">
<div field="BEGIN_DATE" width="100px" vtype="required" headerAlign="center" align="center" dateFormat="yyyy-MM-dd HH:mm">*开始时间
                                    <input property="editor" showtime="true" required="true" class="mini-datepicker" style="width:100%;"/>
                                </div>
                                <div field="END_DATE" width="100px" vtype="required" headerAlign="center" align="center" dateFormat="yyyy-MM-dd HH:mm">*结束时间
                                    <input property="editor" showtime="true" required="true" class="mini-datepicker" style="width:100%;"/>
                                </div>
</div>

Rank: 8Rank: 8

沙发
发表于 2016-11-4 16:05:52 |只看该作者
你贴这代码里面没发现开始时间和结束时间有什么相互依赖,应该是可以随便编辑的

Rank: 2

板凳
发表于 2016-11-4 16:23:59 |只看该作者
felt 发表于 2016-11-4 16:05
你贴这代码里面没发现开始时间和结束时间有什么相互依赖,应该是可以随便编辑的 ...

所有和这个datagrid有关的代码都在这里,我也没有想明白是哪里有依赖关系导致只能先编辑开始时间再编辑结束时间了,麻烦帮我看看:
grid_holiday.on("cellclick",function(e){
//                       alert(e.record[e.field]); 当前单元格的内容
//                       alert(e.column.header); 当前单元格的表头名称
                      if(e.record[e.field] == "-"){
                              onRemove(1,grid_holiday);
                      }
                });
                grid_holiday.on("drawcell", function (e) {
            var field = e.field;
            //给删除列,增加背景色
            if (field == "operate") {
                e.cellStyle = "background:#007BA4";
            }
        });
                grid_holiday.on("update",function(e){
                        //将表格默认抬头关闭
                        $(".mini-grid-table").each(function(){
                                $(this).find("td").css("height","0px");
                        });
                });
                function onHolidayCellValidation(e){
                        if(e.field == "BEGIN_DATE"){
                                if(e.value == 0){
                                        e.isValid = false ;
                                        e.errorText = "开始时间不能为空";
                                }
                        }
                        if(e.field == "END_DATE"){
                                if(e.value == 0){
                                        e.isValid = false ;
                                        e.errorText = "结束时间不能为空";
                                }
                        }
                        if(e.field == "CONSTRAINT_NAME"){
                                if(e.value == 0){
                                        e.isValid = false ;
                                        e.errorText = "约束名称不能为空";
                                }
                        }
                }
                //重要时期约束的单元格验证,对时间进行约束
                grid_holiday.on("cellbeginedit", function (e) {
                var field = e.field;
                var record = e.record;
                var editor = e.editor;
                if (field == "BEGIN_DATE") {
                    if (record.END_DATE) {
                        editor.setMaxDate(record.END_DATE);
                    }
                }
                if (field == "END_DATE") {
                    if (record.BEGIN_DATE) {
                            var dateObj = record.BEGIN_DATE;
                        var year = dateObj.getFullYear();
                        var month = dateObj.getMonth() + 1;
                        var day = dateObj.getDate();
                        if(month < 10) month = "0" + month;
                        if(day < 10) day = "0" + day;
                        var returnStr = year + "-" + month + "-" + day;
                        editor.setMinDate(returnStr);
                    }
                }
            });
                grid_holiday.on("cellendedit", function (e) {
                var field = e.field;
                var record = e.record;
                var value = e.value ;
                if (field == "BEGIN_DATE") {
                    if (record.END_DATE) {
                        var day = record.END_DATE-value;
                        day = day /(24 * 60 * 60 * 1000) + 1;
                        day = Math.round(day);
                        grid_holiday.updateRow(record,{DAYS:day});
                    }
                }
                if (field == "END_DATE") {
                    if (record.BEGIN_DATE) {
                            var day = value-record.BEGIN_DATE;
                        day = day /(24 * 60 * 60 * 1000) +1;
                        day = Math.round(day);
                        grid_holiday.updateRow(record,{DAYS:day});
                    }
                }
            });

Rank: 8Rank: 8

地板
发表于 2016-11-4 16:42:01 |只看该作者
flower 发表于 2016-11-4 16:23
所有和这个datagrid有关的代码都在这里,我也没有想明白是哪里有依赖关系导致只能先编辑开始时间再编辑结 ...

这些代码里也没有你说的这样的限制

Rank: 2

5#
发表于 2016-11-4 16:46:59 |只看该作者
felt 发表于 2016-11-4 16:42
这些代码里也没有你说的这样的限制

诶....所以我也是奇了怪了...

Rank: 8Rank: 8

6#
发表于 2016-11-4 16:58:05 |只看该作者
flower 发表于 2016-11-4 16:46
诶....所以我也是奇了怪了...

把关于这个表格的html和js都独立到一个页面,模拟几条空数据也有这问题吗?

Rank: 2

7#
发表于 2016-11-4 17:02:02 |只看该作者
felt 发表于 2016-11-4 16:58
把关于这个表格的html和js都独立到一个页面,模拟几条空数据也有这问题吗? ...

啊~对了,新增新数据的时候,没有问题,任何列都可以单独被编辑,没有任何依赖,但是已有数据行就会有问题,只有结束时间这一个栏位是需要先点击开始时间才能再编辑的

Rank: 8Rank: 8

8#
发表于 2016-11-4 17:06:45 |只看该作者
flower 发表于 2016-11-4 17:02
啊~对了,新增新数据的时候,没有问题,任何列都可以单独被编辑,没有任何依赖,但是已有数据行就会有问 ...

这些代码里没发现有控制
你自己查查别的代码吧,你肯定有别的地方的js限制了

Archiver|普加软件

GMT+8, 2024-6-26 23:33 , Processed in 1.041577 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部