Axure教程:省市区级联效果实现的两种方式(下拉列表和动态面板)

10 评论 55889 浏览 84 收藏 7 分钟

级联是原型中比较常用的一种效果,在绘制级联效果时我们通常采用的动态面板,加上“选项改变时”事件完成。这种情况下若级联下拉框值过多时,那么必须为每个下拉框值写事件,耗费时间与精力。接下来本文将展现省市区级联的两种方式,后者采用动态面板中“value”属性实现效果。大家可以进行比较。

第一种方式:使用下拉列表框

为下拉列表框每个值编写“选项改变时”事件。

1. 在设计器中拖拽三个下拉框,三个文本标签,并对每个下拉框进行命名,将“市”、“区”下拉框转换成动态面板。如下图:

1

2. 为省、市、区添加模拟数据。在添加市、区时需要注意,因为是不同省对应的不同的市、区,所以市、区动态面板要分别创建。如下图:

2

3. 省市区级联思路:选择省之后,市、区应该随之改变,例如,选择安徽省,市下拉框应该是安徽省下面的所有市,区下拉框应该是当前选中市所有的区(一般默认为省会城市、省会城市所在区)。

下面创建“省”下拉框的“选项改变时”事件。

3

4

依照设置安徽省的,完全其他省的设置。设置完成后如下图:

5

设置后,F5运行,效果如下:

sili.gif

下面创建“市”下拉框的“选项改变时”事件。

因为“市”下拉框与“区”下拉框是动态面板,所以在设置“选项改变时”事件时,需要到每个面板中对应设置。

8

7

8

依照合肥市,设置安徽省其他市设置,如下图:

9

与合肥市相同的,完成其他省市的“选项改变时”事件的设置。

设置完成后,F5运行,如下图:

1

至此,通过第一种编写下拉框各项“选项改变时”事件实现省市县级联效果完成。

第二种方式:利用动态面板

利用动态面板状态“value”属性,通过变量和编写“选项改变时”事件实现效果。

在第一种方式中我们写了如下多事件:如下图

g1

在第一种方式中看到,需要为每一个下拉框编写事件,如果要实现32个省市自治区级联效果,难道要编写32个条件判断?估计会被折磨死了。下面简单介绍第二种实现方式。

首先保证“省”下拉框内选项值与“市”动态面板的名称相同,如下图:

10

为什么要两者名称一致?下面介绍,动态面板value属性。

动态面板状态名称就是value,所以当省与动态面板名称一致时,动态面板会自动匹配相对应的下拉框。需要做一下设置:

11

[[LVAR1]]是什么?[[LVAR1]]是变量值,Axure里面有变量的概念,就和编程中变量一样。把当前原件选项值赋值给变量LVAR1,之后“市”动态面板会自动匹配相对应的下拉框。效果如下:

2

类似的,为“市”动态面板下拉框设置“区”动态面板的事件。

用这种方式实现级联效果,我们没有过多的编写事件,只有了动态面板的value属性即可,大大提高了原型制作效率。

小结:

为大家介绍了两种实现级联效果的方式,第二种方式需要掌握Axure变量的相关知识。

后续会为大家介绍Axure变量的相关知识点。任何问题可以留言,互相交流。

 

本文由 @走错路了 原创发布于人人都是产品经理。未经许可,禁止转载。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 如果可以,麻烦上传一下源代码

    来自北京 回复
  2. 你这个添加事件只能一一对应,如果省市太多,就比较乱了!

    来自上海 回复
    1. 添加事件时第一种方法,我推荐第二种,使用value属性,只需要写1个事件

      来自北京 回复
    2. 我其实就想问问使用value属性怎么实现三级联动,我用了value属性只能实现二级联动,想了好久三级联动都没法解决。

      来自上海 回复
    3. 一一对应串起来就好了 😉

      来自上海 回复
  3. 没有说关键的设置函数,这是故意的嘛😁

    回复
    1. 没有用到函数,就是局部变量而已。

      来自北京 回复
    2. 第二种方法 没有任何反应呢

      来自北京 回复
    3. 画绿圈的右边,有个fx,点击那里添加局部变量,LVAR1=被选项 This ,然后你再试试,二级联动是没问题滴

      来自广东 回复
    4. 第二种方法,完全没有用啊,请问其他人呢

      来自广东 回复