jQuery MiniUI

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

mini-datagrid中,事件oncellvalidation 如何动态去掉[取消]某一列( [复制链接]

Rank: 4

跳转到指定楼层
楼主
发表于 2015-6-25 14:51:34 |只看该作者 |倒序浏览
mini-datagrid中,事件oncellvalidation 如何动态去掉[取消]DataGrid中某一列(单元格的)验证?
dicttype_grid.getColumn("APPID").editor.isValid()=true/false;好像不生效


<div field="APPID"  headerAlign="center" renderer="onAppName" align="center">xxxx
        <input property="editor" id="comboxApp"   name="map.appid"  allowInput="true" class="mini-combobox"  textField="NAME" valueField="ID"
                dataField=""  emptyText="请选择..." required="true" />
</div>  

<div field="APPID2"  headerAlign="center" renderer="onAppName" align="center">xxxx
        <input property="editor" id="comboxApp2"   name="map.appid2"  allowInput="true" class="mini-combobox"  textField="NAME" valueField="ID"
                dataField=""  emptyText="请选择..." required="true" />
</div>  
假设,我的datagrid有上面两列,我在datagrid中调用了oncellValidation事件去做一些验证,现在想动态控制某一些的验证通过?请问版主这个该怎么实现?我是在oncellValidation事件中触发

Rank: 8Rank: 8

沙发
发表于 2015-6-25 14:59:14 |只看该作者
要使用表格的验证,请将验证写在列上,这样才有oncellvalidation事件
oncellvalidation="onCellValidation"

function onCellValidation(e){
    var field=e.field;
   if(field==){
    e.isValid=true;

}

Rank: 4

板凳
发表于 2015-6-25 15:03:52 |只看该作者
felt 发表于 2015-6-25 14:59
要使用表格的验证,请将验证写在列上,这样才有oncellvalidation事件
oncellvalidation="onCellValidation" ...

这个事件是写在表格上面的吧,在表格上面才生效,写在列上不生效啊
我试过了,这个本来就是表格事件吧???

Rank: 8Rank: 8

地板
发表于 2015-6-25 15:11:26 |只看该作者
liuziliangjava 发表于 2015-6-25 15:03
这个事件是写在表格上面的吧,在表格上面才生效,写在列上不生效啊
我试过了,这个本来就是表格事件吧? ...

http://www.miniui.com/demo/#src=datagrid/cellvalidation.html
参考示例

Rank: 4

5#
发表于 2015-6-25 15:22:48 |只看该作者
felt 发表于 2015-6-25 15:11
http://www.miniui.com/demo/#src=datagrid/cellvalidation.html
参考示例

版主,这个我知道
现在我的需求是这样的
    就是说假设我的datagrid有两列A、B两列,现在我的验证情况是这样的:
     1)、如果A列为空,则提示不能为空,光标定位到这A列
     2)、如果A列(不为空)、B列为空,A列有重复的值,则提示A列的值不能重复,光标定位到A列
     3)、如果A列值不为空有重复,但是B列也不为空,B列没有重复,怎么把A列的那个验证给动态去    掉?
我这些判断都是写在oncellvalidation事件中的,现在就是第三种情况不知道怎么动态取消掉A列的验证。

Rank: 8Rank: 8

6#
发表于 2015-6-25 15:27:46 |只看该作者
liuziliangjava 发表于 2015-6-25 15:22
版主,这个我知道
现在我的需求是这样的
    就是说假设我的datagrid有两列A、B两列,现在我的验证情况是 ...

没看明白你的逻辑
你可以在oncellvalidation里面处理
具体的判断条件可以根据你想要的逻辑关系处理
e.isValid=true就是设置验证通过

Rank: 4

7#
发表于 2015-6-25 15:31:19 |只看该作者
felt 发表于 2015-6-25 15:27
没看明白你的逻辑
你可以在oncellvalidation里面处理
具体的判断条件可以根据你想要的逻辑关系处理

简单一点,就是我在触发第二个单元格验证,怎么动态设置取消第一个单元格的验证?因为我现在验证第二个单元格的时候,我想把第一个单元格的验证给取消掉?就是这个意思

Rank: 8Rank: 8

8#
发表于 2015-6-25 15:32:26 |只看该作者
liuziliangjava 发表于 2015-6-25 15:31
简单一点,就是我在触发第二个单元格验证,怎么动态设置取消第一个单元格的验证?因为我现在验证第二个单 ...

无法去掉
编辑第二个单元格结束的时候只会对当前单元格进行验证

Rank: 4

9#
发表于 2015-6-25 15:37:53 |只看该作者
felt 发表于 2015-6-25 15:32
无法去掉
编辑第二个单元格结束的时候只会对当前单元格进行验证

var grid = e.sender;
var rownum = grid.indexOf(grid.getSelected());
var co = grid.getCellEditor (0, rownum);
co.editor.isValid=true;
还是不行

Rank: 8Rank: 8

10#
发表于 2015-6-25 16:24:31 |只看该作者
liuziliangjava 发表于 2015-6-25 15:37
var grid = e.sender;
var rownum = grid.indexOf(grid.getSelected());
var co = grid.getCellEditor (0 ...

第二个结束编辑不会对第一个单元格进行验证,
要么就调用表格整体的验证对表格所有单元格进行验证

Archiver|普加软件

GMT+8, 2025-6-17 13:28 , Processed in 1.048257 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部