jQuery MiniUI

标题: datagrid的时间约束 [打印本页]

作者: flower    时间: 2016-8-25 16:59:41     标题: datagrid的时间约束

用datagrid做列表展示,里面有开始和结束时间的编辑,希望可以对时间进行约束:1、开始时间和结束时间都不能为空
2、开始时间不能大于结束时间
3、选择开始时间之后,结束时间控件中在开始时间之前的所有日期都置灰并且不能选中

4、选择结束时间之后,开始时间控件中在结束时间之后的所有日期都置灰并且不能选中
我自己做的感觉代码很笨重,是否有比较好的实现方式?
自己的代码:
                grid_holiday.on("cellvalidation",function(e){
                        if(e.field == "BEGIN_DATE"){
                                begindate = e.value ;
                                if(e.value == null || e.value == ""){
                                        alert("对不起,开始时间不能为空");
                                        e.isValid = false ;
                                        return ;
                                }
                        }else if(e.field == "END_DATE"){
                                enddate = e.value ;
                                if(e.value == null || e.value == ""){
                                        alert("对不起,结束时间不能为空");
                                        e.isValid = false ;
                                        return ;
                                }
                                if(enddate < begindate){
                                        alert("对不起,结束时间不能小于开始时间");
                                        e.isValid = false ;
                                        return ;
                                }
                        }
                        else if(e.field == "NAME"){
                                if(e.value == null || e.value == ""){
                                        alert("对不起,名称不能为空");
                                        e.isValid = false ;
                                        return ;
                                }
                        }else{
                                e.isValid = true ;
                                return ;
                        }
                });



作者: felt    时间: 2016-8-25 17:08:55

可以么肯定可以的,但是你这限定的要求有点高,代码当然也就会多点。
晚点我给你做个例子吧
作者: flower    时间: 2016-8-25 17:22:34

felt 发表于 2016-8-25 17:08
可以么肯定可以的,但是你这限定的要求有点高,代码当然也就会多点。
晚点我给你做个例子吧 ...

非常感谢!!!
作者: dforce    时间: 2016-8-26 09:39:46

flower 发表于 2016-8-25 17:22
非常感谢!!!

[attach]7862[/attach]

作者: flower    时间: 2016-8-26 15:56:10

dforce 发表于 2016-8-26 09:39

这个好像没有用哦,在界面上控件没有显示为时间的选择  ;
if (record.finish)这个判断好像没有响应。
grid_holiday.on("cellbeginedit", function (e) {
                var field = e.field;
                var record = e.record;
                var editor = e.editor;
                if (field == "BEGIN_DATE") {
                    if (record.finish) {
                        editor.setMaxDate(record.finish);
                    }
                }
                if (field == "END_DATE") {
                    if (record.start) {
                        editor.setMinDate(record.start);
                    }
                }
            });
作者: flower    时间: 2016-8-26 16:34:09

dforce 发表于 2016-8-26 09:39

刚刚做了很多测试发现是因为我在代码上做了响应的修改,所以导致判断不可行,现在问题解决了,时间可以正常约束了,非常感谢!!
作者: dforce    时间: 2016-8-26 16:49:54

flower 发表于 2016-8-26 15:56
这个好像没有用哦,在界面上控件没有显示为时间的选择  ;
if (record.finish)这个判断好像没有响应。
gr ...

直接跑我们给你的例子看效果




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