1.概述

在表单设计时,表单默认提供了添加,删除,更新等功能。有些情况下我们希望控制这些功能,比如在删除的时候,什么数据可以删除,什么数据不可删除。这些可以使用子表的函数扩展来实现。

2. 使用说明

自定义函数用法,这些函数我们需要自己定义在自定义函数中,如果不定义,就不会做控制。

比如:

var custFuntions=[{name:"beforeRemove",action:function(tableName){
  return {success:false,msg:"不允许删除"};
}},{name:"beforeAdd",action:function(tableName,row){
  return {success:false,msg:"不允许添加"};
}}];

所有的函数的返回值,为 {success:false,msg:"不允许添加"},当然用户可以不写返回也是可以的。如果我们希望阻止用户继续操作,就返回 {success:false,msg:"不允许添加"},并写清楚原因。

2.1 添加函数

2.1.1 函数说明

beforeAdd(tablename, row)

参数:

参数 说明
tablename 添加的子表名
row 需要添加的行

2.1.2 添加时初始化某些字段

var custFuntions=[{name:"beforeAdd",action:function(tableName,row){
  row.name="老王";
}}];

2.2 弹窗关闭之前调用函数

在子表弹窗模式,弹出窗口,我们可以使用这个函数,对数据进行修改,或者验证数据不让提交。

2.2.1 函数说明

beforeClose(subName,row)

参数:

参数 说明
tablename 子表名
row 需要添加的行

2.2.2 验证表单数据

我们验证某个字段是否符合要求,如果不符合那么不允许关闭窗口。

var custFuntions=[{name:"beforeClose",action:function(tableName,row){
    if(row.name=="老王"){
        return {success:false,msg:"不能添加老王!"};
    }

}}];

这样我们在添加数据的时候,如果条件不符合,就不允许添加。

2.2.3 编辑时不能修改某个字段

我们验证某个字段是否符合要求,如果不符合那么不允许关闭窗口。

var custFuntions=[{name:"beforeClose",action:function(tableName,row){
    if(row.ID_ && row.name=="老王"){
        return {success:false,msg:"不能编辑老王信息!"};
    }
}}];

我们可以通过判断 row.ID_ 是否有值,判断数据是编辑还是添加的状态。

2.3 删除记录函数

在表单数据删除时,我们可以编写代码对删除进行控制.

2.3.1 函数定义

beforeRemove(tablename,rows)

参数定义

参数 说明
tablename 表名
rows 选择的数据,为一个数组

2.3.2 已保存的数据不能删除

有些情况下,子表已保存的数据不能被删除,我们可以使用如下的方法进行处理。

{
  name:"beforeRemove",action:function(tablename,rows){
    var flag=false;
    for(var i=0;i<rows.length;i++){
      var row=rows[i];
      if(row.ID_){
        flag=true;
      }
    }
    if(flag){
      return {success:false,msg:"不能编辑已保存数据!"};
    }
  }
}
文档更新时间: 2021-07-17 17:30   作者:zyg