业务场景
在表单开发中,有这样的业务,比如点击列表中的一个商品数据,希望将商品数据传递到表单进行显示,但是这个商品的数据并不属于表单的一部分。下面就介绍一下这种业务如何来实现。
实现步骤
设计一个商品列表
我们简单点,商品设置两个字段,一个商品名,一个商品产地。
这里有个小技巧,如何在列表中显示一个连接。
在字段渲染时,修改为普通,保存后生成列表。
编辑点击事件方法:
在PC端页面JS函数定义编写代码:
showForm(product){
this.getDialogBox().showForm({
title:"测试",
curVm:this,
data:{alias:"xscpxx",setInitData:function(data){
data.product=product;
return data;
}},
widthHeight:['800px','600px']
},
function(action){
});
}
这个代码的意思时,打开一个别名为 xscpxx 的表单,并将当前的商品名称数据传递到 被打开表单的 数据的 product 属性中,这个 product 并不是表单的一个数据,这里只是通过 product 传递数据。
设计被打开的表单
希望在A,B两个地方显示 数据。
这里可以看到 标签 绑定为 formContext.F_NAME,formContext.F_ADDRESS。
在表单的初始化方法编写脚本如下:
var _onload=function(){
var product=this.data.product;
var self=this;
this.invokeCustomQuery("product",{"F_NAME":product},function(data){
var row=data[0];
for(var key in row){
self.$set(self.formContext,key,row[key]);
}
});
}
这里我们可以看到,从 data 获取了 product 商品的名称。然后调用自定义查询,返回一行数据,然后将数据绑定到 formContext 上面,这样就完成了数据绑定。
显示效果如下
通过这种方式,我们可以通过 setInitData 的方式将值传递到表单的 data数据,然后我们调用自定义查询,将数据绑定到 formContext 上下文对象上。
文档更新时间: 2021-07-09 14:31 作者:zyg