【AgilePoint】AgilePoint的V8 Subform

AgilePoint的V8 Subform

1.新增V8特性(SetFieldValue)

可通过setFieldValue传入数组进行绑定Subform数据。

ExecuteLookup('lktest',function(sfdata){   
	  //数据处理       
     SetFieldValue('SubForm1',sfdata) ;          
})   

function SetFieldValue(fieldId,data){
var options = {};
options.fieldId = fieldId; 
options.value =data;
eFormHelper.setFieldValue(options, function (result)
  {
  if (result.isSuccess) 
    {     
    }
  else 
    {
    console.log(result.error); 
    }
});
}

2.V8 SubForm问题汇总

a.通过非AutoLookup绑定Subform数据问题

1.通过非AutoLookup(SetFieldValue或AddRowsToSubForm)绑定Subform的方法会出现在GetSubFormData时获取数据不全的情况
在这里插入图片描述
解决方法:
SetFieldValue或AddRowsToSubForm前将缺少的字段补上数据源中且赋为空值。
(以下以TextBox6为例)

 ExecuteLookup('lktest',function(sfdata){      
       //数据处理   
      $(sfdata).each(function(i,data){data.TextBox6='';})
     AddRowsToSubForm('SubForm1',sfdata);          
     }) 

b.DropDownList在Subform中加载问题

1.通过bindDataToCollectionControls方法绑定Subform下拉框时,会发生下拉框没有加载数据源
在这里插入图片描述
问题原因:
由于Subform绑定数据和下拉框绑定数据是异步进行的,当Subform数据未加载完成之前,进行绑定下拉框会导致一部分数据源绑定下拉框失败。
解决方法:
1.将下拉框绑定方式改为DropdownList绑定lookup的方式
在这里插入图片描述
2.在AddRowsToSubForm的Success之后进行绑定下拉框数据源操作(SetFieldValue在数据量多的时候不支持

function AddRowsToSubForm(fieldId,data){
  var options = {};  
  options.fieldId = fieldId;
  if(data!=undefined){
    options.value = data;
  }
    eFormHelper.addRowsToSubForm(options, function (result) 
    {
      if (result.isSuccess) 
        {  //在此进行绑定下拉框数据源操作      
             ExecuteLookup('lkLoadDrpMult',function(res){
  		BindDataToCollectionControls('SubForm1/DropdownList1: [*]',res)
       })      
        }
        else 
        {        
          console.log(result.error); 
        }      
    });
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值