jQuery MiniUI

标题: 在datagrid中如何实现编辑一行验证一行保存一行的功能? [打印本页]

作者: joyoes    时间: 2021-9-4 19:53:36     标题: 在datagrid中如何实现编辑一行验证一行保存一行的功能?

我认真参考了这个示例: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事件中,现在都不敢写!
谁遇到过编辑一行自动验证一行,然后自动保存一行的成功案例啊?求给个示例

作者: felt    时间: 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){
                        保存
             }
      }
})

作者: joyoes    时间: 2021-9-6 22:27:30

felt 发表于 2021-9-6 09:14
比如说编辑完最后一列后进行验证,然后提交
grid.on("cellendedit",function(e){
      if(e.field=="xxx") ...

像这样的话,实现了一行数据所有需要验证的列都验证了,同时还不用在cellcommitedit事件处理保存的功能了,我的这样理解对吗?
作者: felt    时间: 2021-9-7 09:09:28

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

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




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