美文网首页
4.1 开发技巧:参数传递

4.1 开发技巧:参数传递

作者: MisShop智能开发平台 | 来源:发表于2019-03-22 15:09 被阅读0次
数值和字符串的传递

之前我们在介绍链接控件的时候,提到了链接参数的传递。例如,编辑列表中的一条记录,把列表页记录的id传递给子页面,配置过程是这样的:

  1. 在列表页链接控件的控件属性中,添加一个参数,参数名为it_id,参数值为ds.id。

  2. 在编辑页的页面数据里添加参数,参数名称为it_id,参数类型为整数。

  3. 在编辑页的页面数据里,it变量的过滤条件设置为table.用户.id == @it_id

注意:1和2中的参数名可以任意改,但必须完全相同;1的参数值和2的参数类型要对应;3中的@it_id必须要加“@”符号。
各个变量的使用时机配置,一般父页面的是front,子页面的是back,设置如果不对,参数传递不过去,容易出现错误。

目前参数传递只支持整数和字符串的传递,其他如List、数组、Map都必须先转化为字符串(用toString()函数),传过去以后再解析回原类型(用parse()函数)。

Map参数的传递

Map数据类型是形如这样的,mymap={key1:value1,key2:value2,key3:value3,...},使用的时候用mymap.get(key2)就能获得value2。其特点是key1、key2、key3...必须不能有重的,而value1、value2、value3...等可以相同。如sex={1:"男",2:"女"},用sex.get(2)就能得到"女"。

例如在列表页选购完商品,要传递购买商品的品名和数量给子页面,则可以将传递的数据设置成Map类型,其中购买商品的名称为key,购买商品的数量为value,配置过程如下:

  1. 在列表页建立一个变量amap,数据类型是键值对,使用时机是front,初始化函数是Map.parse(@amap),取值一激活,函数为Map.parse(@amap).putAll(Map.createByCells("D2","E2",dynamic(E2)).trimValue())

  2. 在列表页链接控件的控件属性中,添加一个参数,参数名为pmap,参数值为amap.toJson()

  3. 在子页面的页面数据里添加参数,参数名称为pmap,参数类型为字符串。

  4. 在子页面的页面数据里,添加变量bmap,变量类型是键值对,使用时机是back,初始化函数是Map.parse(@pmap)

  1. 在子页面的页面数据里,添加变量map数据集,使用时机是back,变量类型是数据集,泛型为Other,初始化函数为DataSet.parse(bmap)

  2. 在子页面的单元格中,使用=map数据集.select(map数据集.id)=map数据集.name=map数据集.value来展示传递过来的数据。其中数量列也可以用=bmap.get(C3)来获得。

初始化函数的Map.parse(@amap)的作用是当列表有多页时,点击下一页后,前页的选择依然有效。否则,第1页的选择完了以后,浏览第2页,第1页的选择就作废了。
需要注意的是,使用名称作为key时,名称不能有重复的,如果有重复的,系统会自动去重。如果需要有重复的,可以用id作为key,因为id肯定不会重复。如果数量的值未填,即值为null,则系统不会将这个key-value编入Map中。


多个Map参数的传递

当需要传递品名、数量、单价等三类信息时,可以使用两个Map参数传输。其中一个Map的key是品名,value是数量,另一个Map的key是品名,value是单价。在父页面的链接按钮控件属性上添加两个参数,在子页面设置两个变量分别接收参数。其他过程与1个Map参数的传递一样。
需要说明的是,多个Map参数传递后展示时,使用第一个map数据集扩展成多行,第二个map数据集value使用第一个map数据集的key来获得。如map数据集1是名称和单价,map数据集2是名称和数量,则id列写=map数据集1.select(map数据集1.id),名称列写=map数据集1.name,单价列写=map数据集1.value,数量列写=map数据集2.get(map数据集1.name)。重点注意数量列的写法。

相关文章

  • 4.1 开发技巧:参数传递

    数值和字符串的传递 之前我们在介绍链接控件的时候,提到了链接参数的传递。例如,编辑列表中的一条记录,把列表页记录的...

  • JAVAScript0411

    4.1 基本类型和引用类型的值 1.EAMAScript函数参数按值传递: function addTen(num...

  • JAVAScript0411

    4.1 基本类型和引用类型的值 1.EAMAScript函数参数按值传递: function addTen(num...

  • Vue-router 参数传递

    开发中,参数的传递是个最基本的业务需求。 过URL地址来传递参数是一个形式 用 name 传递参数 1、在路由文件...

  • Access在窗体间传递参数的几种常用办法

    Access在窗体间传递参数的几种常用办法 在OfficeAccess 实际开发应用中,常常需要在窗体间传递参数。...

  • django教程--参数传递(GET方式)

    django教程--参数传递(GET方式) web开发过程中最常见的两种参数传递方式为GET和POST,今天我们就...

  • shell脚本编程小技巧

    总结的一些shell小技巧,时时更新中。。 (1)使用&&和||的短路特性,假如传递了参数,PARAM=参数,否则...

  • JNI 入门

    ref: Android Studio开发JNI示例Android NDK 开发(二)JNI 传递参数和返回值An...

  • 小程序:(微信小程序)点击事件传递参数的方法

    小程序在组件上绑定事件后,传递参数的方式不同于前端开发其他场景中直接加参数的方式,小程序在参数的传递时,采用事件对...

  • PHP 处理接口 body 的逻辑

    开发环境:PHP 7.1.23 + Apache 2.4.34 在开发项目的过程中,前端传递参数时可使用多种格式:...

网友评论

      本文标题:4.1 开发技巧:参数传递

      本文链接:https://www.haomeiwen.com/subject/pbjhpqtx.html