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:"不能编辑已保存数据!"};
}
}
}
2.4 行编辑函数
在子表为弹窗模式的情况下,我们要编辑数据时,会弹出窗口进行数据的编辑。我们可以在点击编辑按钮时,执行自定义函数,如果希望控制不弹出窗口,我们可以 返回 {success:false,msg:"提示消息"}
2.4.1 函数定义
beforeEdit(tablename,row)
参数定义
参数 | 说明 |
---|---|
tablename | 表名 |
row | 当前选行的数据 |
2.4.2 示例
比如数据已经保存过,可以如此定义函数:
var custFuntions=[{
name:"beforeEdit",
action:function(tableName,row){
if(row.ID_){
return {success:false,msg:"禁止编辑数据"}
}
}
}];