jQuery MiniUI

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

在datagrid中如何实现编辑一行验证一行保存一行的功能? [复制链接]

Rank: 6Rank: 6

跳转到指定楼层
楼主
发表于 2021-9-4 19:53:36 |只看该作者 |倒序浏览
我认真参考了这个示例:http://www.miniui.com/demo/index.html#src=datagrid/cellvalidation.html
但这个示例的缺点是:必须要手动点击“保存”按钮才可以保存到服务器!
但想现在有个想法是:新增一行或者是编辑一行,当鼠标点击其他行时,能自动验证,验证通过后自动将该行进行AJAX,不通过则定位到指定的单元格,我分别使用了这两个事件:
  1. grid.on("cellcommitedit", function (e) {
  2.         console.log('commit')
  3.     });
  4.    
  5.     grid.on("cellvalidation", function (e) {
  6.         //mini.alert("end");
  7.         grid.validateRow(e.record)
  8.         if (e.field=='vip_full_name') {
  9.             if (e.value == '') {
  10.                 e.isValid = false;
  11.                 e.errorText = "姓名不能为空";
  12.             }
  13.         }
  14.         if (e.field=='vip_sex') {
  15.             if (e.value == '') {
  16.                 e.isValid = false;
  17.                 e.errorText = "性别不能为空";
  18.             }
  19.         }
  20.     })
复制代码
但不管cellvalidation验证是否通过都要执行cellcommitedit事件,有什么办法可以当验证不通过时,不执行cellcommitedit事件吗?我想把数据提交写在cellcommitedit事件中,现在都不敢写!
谁遇到过编辑一行自动验证一行,然后自动保存一行的成功案例啊?求给个示例

Rank: 8Rank: 8

沙发
发表于 2021-9-6 09:14:07 |只看该作者
比如说编辑完最后一列后进行验证,然后提交
grid.on("cellendedit",function(e){
      if(e.field=="xxx"){
            grid.validate(e.record);
            var isValid=grid.isValid();
             if(isValid){
                        保存
             }
      }
})

Rank: 6Rank: 6

板凳
发表于 2021-9-6 22:27:30 |只看该作者
felt 发表于 2021-9-6 09:14
比如说编辑完最后一列后进行验证,然后提交
grid.on("cellendedit",function(e){
      if(e.field=="xxx") ...

像这样的话,实现了一行数据所有需要验证的列都验证了,同时还不用在cellcommitedit事件处理保存的功能了,我的这样理解对吗?

Rank: 8Rank: 8

地板
发表于 2021-9-7 09:09:28 |只看该作者
joyoes 发表于 2021-9-6 22:27
像这样的话,实现了一行数据所有需要验证的列都验证了,同时还不用在cellcommitedit事件处理保存的功能了 ...

是的,cellcommitedit是编辑结束事件,都没有更新到表格内,怎么能做保存处理?

Archiver|普加软件

GMT+8, 2024-11-26 08:38 , Processed in 1.042470 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部