Axure RP8中继器实例

Repeater(中继器)控件的用法

Axure中的Repeater控件顾名思义就是可以重复添加内容,而无需逐个进行添加。该控件对于以九宫格类、列表类的形式内容时非常有效,且支持用户添加、修改、删除控件中的内容。

axureyuanxigndandu

Repeater控件的使用步骤为:

定义元素–>添加数据–>绑定数据–>修改样式–>数据操作

下面以添加列表类内容为例,逐步具体介绍该控件的使用方法。本文仅适用于具有一定Axure使用经验的用户阅读。

1 定义Repeater元素

1) 在页面中添加Repeater控件,添加后默认效果如下图:

1

2) 双击编辑控件,并按下图所示,为Repeater添加内容,并为各个组件命名:

2

此时,返回到Home页看到的效果如下(其中的数字1、2、3是默认值,暂时不用理会):

3

2 为Repeater添加数据

从上图可以看到Repeater的框架已经显示出来了,但里面的内容还没有,下面我们开始为中继器添加内容;

1) 打开中继器编辑界面,点击页面下部的小三角,打开Repeater 属性窗口,如下图所示:

4

其中,Repeater Dataset就是中继器中的数据,这里默认的1、2、3就是之前预览界面中出现的数字。

2) 按照上一节对图片、标签的定义,为中继器添加列值(列值最好与之前的定义一致)和数据,添加之后效果如下:

5

注意:由于头像是图片格式,但Axure并不支持输入图片路径的方式,因此图片需要在单元格中点击右键选择“导入图片”,只有这样图片才能正常显示。

3 绑定数据

Repeater的数据已经添加完成了,但你会发现此时在Home页预览Repeater仍然没有显示我们添加的数据,下面将介绍如果将我们添加的数据绑定到Repeater中。

1) 在Repeater属性窗口中,点击“中继器项目交互”,显示默认内容:

6

2) 修改ItemLoad用例的定义,修改参考下图所示:

7

注意:头像要选择“设置图像”动作,其他内容选择“设置文本”。这一步非常重要,如果设置不对,头像将不显示。

3) 此时,返回到Home页预览Repeater就可以看到上述步骤中添加的数据内容了:

8

4 修改样式

至此,Repeater中最重要的部分已经定义完成,当然还可以对Repeater的样式进行简单调整,定义非常简单,请自行研究。下图为样式定义,供参考:

9

效果图如下:

10

5 数据操作

经过上述章节的步骤,你已经可以定义一个完整的Repeater控件,通过这种方式可以节省大量样式重复控件的添加工作。不过,这些只是Repeater基本的使用方法,其更大的价值在于可以动态添加、修改、删除数据。本章的内容属于Repeater进阶用法,供有需要的读者参考。当然,如果你的原型图中并不需要动态增删改数据的效果,那么有之前的知识也够用。

5.1 添加数据

1)  接上文的步骤,在Home页放置一个按钮,用于为Repeater添加数据:

11

2) 为该按钮添加单击效果,当点击按钮时为Repeater添加一行数据,如下图:

12

注意:

A. 这里每次只能添加1行,如果定义了多行数据,则点击按钮时会一次性添加多行。

B. 每次点击按钮时添加的行数据是相同的,如果想要添加不一样的数据,则需要配合其他的方法,此处不做说明。

3) 预览Home页,每点击1次“添加行”按钮就可以在Repeater中添加1行:

13

5.2 修改数据

1) 打开Repeater编辑界面,定义“修改”按钮的点击事件,实现点击该按钮修改该行description字段的功能,定义如下图:

14

2) 预览Home页,点击每行后面到“修改”按钮即可以修改该行description字段的值:

15

5.3 删除单行数据

1) 打开Repeater编辑界面,定义“删除”按钮的点击事件,实现点击该按钮删除该行的功能,定义如下图:

16

2) 预览Home页,点击每行后面到“删除”按钮即可以删除该行数据。

5.4 删除多行数据

如果需要选择多行然后批量删除,可以使用checkbox控件,并配合Mark Rows进行删除,步骤如下。

1) Repeater中行首增加一个checkbox控件,并定义该控件的状态改变事件,实现当选中checkbox时标记该行,取消选中时取消标记该行,定义如下图:

17

2) 在Home页中增加“删除选中行”按钮,并定义该按钮的点击事件,实现点击该按钮可以删除checkbox被选中的行,定义如下图:

18

3) 预览Home页,点击“删除选中行”按钮即可以删除多行数据。

19

Axure学习笔记:中继器之价格统计

最近开始捯饬Axure,刚做完一个自认为比较简单的表单,大概完整耗时3天……发现中继器里面还是有很多坑。

主要界面

预期实现功能

  1. 选中每一行,bak(最后一列)出现当前行汇总价格,totalPrice自动汇总;

  2. 选中三行后,自动选中chk-all;

  3. 取消选中行,自动取消选中chk-all,且汇总价出现变化;

  4. 选中/取消选中(含单击、选中)chk-all,自动选中/取消选中所有行,且价格变化正确;

简要思路

选中每行可以有三种方案

  • 选中isChosen

  • 单击isChosen

  • 单击InfoCombo

最初为了方便,选择了第三种,事件中内容比较简单,主要是totalPrice计算公式如图:

另外,为了满足自动判断,初始化全局变量Init为0,用于计算是否需要勾选chk-all,主要逻辑如下:

  1. 选中一行,Init=[[Init+1]],并计算当前行的总价;

  2. 取消选中当前行,Init=[[Init-1]];

  3. 选中chk-all,Init=repeater.dataCount(语法将就看下);

  4. 取消选中chk-all,Init=0;

接下来,问题来了。

选中chk-all的时候,如何汇总价格?由于InfoCombo只有“单击”事件,chk-all的事件中没有“单击”,无法触达每行的计算行为,第三种方案不行;(暂时认为不行)

换方案2,isChosen的单击事件,刚开始就遇到坑;这货对于条件的解读居然是反的。。。网上查到资料解释如下:

复选框部件支持OnClick事件用于响应单击操作,在OnClick事件中可以依据复选框部件的状态执行 相应的动作。但需要注意的时,在此处判断复选框的状态得到的是单击后的复选框的状态,例如复选框处于未选中状态,在OnClick事件中,该复选框已处于 选中状态,如果复选框处于选中状态,在OnClick事件中,该复选框已处于未选中状态。

不过绕过这个坑后,由于出现跟方案3类似的情况,仍旧无法汇总价格。

最后回到方案1:选中isChosen复选框时进行计算;

另外,选择“单击”chk-all来触发每行的选中事件,如果使用“选中/未选中”,则会出现前者的未选中事件触发后者的未选中,导致异常。

关键配置如下:

(1)每行

(2)chk-all

从表面上看,应该没问题了,开始生成页面测试,出现如下幺蛾子:

选中复选框的时候,“选中”事件触发了两次,前思后想,结合第一个方案判断,应该是:选中复选框的时候,同时算作选中了repeater的当前行(含复选框)。所以仅靠第一个方案仍然无法实现价格汇总,接下来想到方案四,使用单击计算Init,选中计算价格,不过由于选中触发两次,价格汇总有一定难度;

最后回到最初的方案,发现“由于InfoCombo只有“单击”事件,chk-all的事件中没有“单击””这个思路可能有点问题,chk-all单击时应该能嵌套一个事件。之后,需要设置一个标志位flag来表示单击事件是否是由chk-all触发,否则在单击某行之后再去单击chk-all,该行会取消选择;

关键设置

chk-all单击设置(注意allFlag的还原

每行单击事件设置

实现效果

总结

  1. 正文中标粗部分;

  2. 复选框/全选框之间在点击时的互斥关系,一定要提前想清楚;(体现在标志位使用完之后的重置)

Axure8.0教程:利用中继器对表格的增删改操作

axure

一直都是只看不发的那种,运用axure制作原型也有很长一段时间了,最近升级到8.0,用起来各种顺手啊,就写了一个中继器的教程,供新手学习。

原型主要是通过中继器实现表格的增删改操作,示例如下:

添加

删除

修改

1 开工前的原件准备工作

文本框矩形框数个、下拉框一个、按钮两个、中继器一个。建议做好原件命名,因为之后会涉及到蛮多的交互,清晰的命名可以避免出现混乱。

1

然后我们需要对中继器做一些处理,点击中继器,右侧它的属性页,可以把三个行都删除,然后双击中继器进入中继器编辑页面。

按照表格每一列的名称在中继器内放入6个矩形框,做好元件命名。

2

3

现在是这个样子的。

2 数据添加功能

准备工作完成,然后我们需要为中继器添加一下动作,中继器属性面板选择每项载入时,当打开网页或者添加数据时候,为中继器加载数据集到元件。

4

特别注意的是,为了实现编号自增,编号的动作设置为[[item.index]]

中继器属性面板为中继器数据集添加列,也可以手动添加一行数据,如果是7.0的版本你的中继器数据集应该再页面下方,8.0整合到右侧

5

之后需要为添加按钮配置点击动作,为中继器“添加行”

6

点击下方的 添加行 ,把输入框和中继器数据集绑定起来:

7

8

到此,添加功能已经完成。

3 单行选择+删除行

进入中继器页面,选中6个矩形框,设置选中的动作—填充颜色

9

同样是选中6个矩形框的状态,按 ctrl+g,将6个矩形设为选项组,别忘了添加一个选项组名称(很重要),添加鼠标点击动作,

10

标记行是稍后的删除动作需要用到的,现在已经可以选择行,但是没有单选效果,回到中继器属性

11

中间的勾去掉即可。

下面为“删除行”按钮配置动作

12

此处非常简单,只需要为中继器删除行选择已标记即可,我们上一步标记行的意义就在于此。

4 修改行

点击修改按钮,改行变为可编辑状态,同时修改按钮变成保存按钮,点击保存之后保存修改后的数据。

中继器修改框拖入两个文本矩形,一个修改(xiugai)一个保存(baocun),默认保存文本为隐藏状态。

Xingming、xingbie、zhiwei、youxiang四个矩形框分别拖入一个文本输入框,命名为”xiugai-xingming、xiugai-xingbie、xiugai-zhiwei、xiugai-youxiang“去掉边框设为隐藏状态。

13

然后为修改按钮配置动作:

14

点击修改按钮,显示隐藏文本输入框,同时文本输入框获取当前行的值。

15

然后为保存按钮配置动作,点击保存时中继器更新行,同时中继器数据集应该设置为刚刚的隐藏文本框,这里与之前添加按钮的配置基本一样

16

至此,一个简单的利用中继器增删改的原型设计完成。

但是在预览原型的时候会发现一些问题:

添加数据的时候性别不选择,或者输入为空也可以添加成功,修改行的时候也有同样的问题,而且性别的位置可以随意输入没有任何限制。

我上传的原型中是有一些限制的,这里就不放出具体教程了,有不明白的可以咨询。头一次写,会有一些不清晰的地方,欢迎建议指正!

rp文件地址:http://pan.baidu.com/s/1pL2dW63

Axure 组件重写系列(二):用中继器搞定下拉框重写

回答上一篇文章中网友的评论。真实案例,用中继器搞定下拉框

上一篇文章已经介绍了基础组件“文本框”“下拉框”的重写实现,我们已经可以实现以下自定义效果:

文本框:

下拉框:

那么问题来了,在一个系统中我们需要多次复用下拉框,每个下拉框的下拉预设值在不同页面里面肯定是不一样的,如果下拉数量及内容有所改变,那么我们对每个下拉“子菜单”就要进行繁琐的编辑,虽然ctrl+c、ctrl+v能帮我们提升效率,但毕竟这样的组件复用性显然太低,再加上如果我们对下拉菜单的底色、边框等做调整,意味着所有子项需要删掉重置…

在认识中继器之前,这一切是多么让人抓狂,而中继器却能轻松解决我们的烦恼,我们马上来见识一下axure这件大杀器!

那么什么是中继器?

如果说“动态面板”是PPT,那么“中继器”更像是EXCEL。中继器,英文名“Repeater”,我觉得重复器的定义更方便我们对它的理解,如果稍微学过编程的童鞋,把中继器的编辑原理当成是面向对象中对“类”的编辑,中继器的展示当成对“实例”的展示会相当好理解。那么没学过编程的童鞋呢?其实,我们可以把中继器看成一个“模版”,我们在这个模版中的任何编辑,都会影响到用了这个模版的所有组件。

下面,我们通过对上一篇文章中“下拉框”的改写来理解中继器。

一、下拉框重写(中继器方式)

这部分上一篇已经讲过了,完事之后我们能看到以下效果:

接下来,开始我们的重头戏,中继器创建:

看完这个对比,大家能否理解我前面说的“模版”比喻了呢?

那么,决定中继器内容的是中继器里面的文字编辑吗?当然是!

中继器强大的地方,在于它能将类似于excel的行列数据,通过axure提供的交互事件与模版下的每个实例进行绑定。

那么这个类似于excel的数据编辑器长什么样呢?

很多小伙伴(包括我)一开始不知道这个编辑器藏在哪,下面我提供两种方式:

【方式一】点击单击中继器,在右侧“属性”下方找到

【方式二】双击中继器,进入后单机页面空白处,在“属性”下方找到这个表里的数据可以任意更改,如EXCEL那般。我们注意到,默认的中继器只有3个实例,对应表里只有3行,我们往表里增加1行,那么会对应会增加1个实例,以此类推。

那么,怎么把表里的数据跟我们的“模版”关联呢,我们继续“下拉框”的教程。

在这一节中,我们对中继器“每项加载”交互实例添加了文本的绑定,在这里,如果有童鞋疑问:

为什么不用“加载时”,而用“每项加载”?

这里先卖个关子,可以剧透一点的是,加载时也可以实现文本的绑定,但是需要在浏览器中才能浏览到实时数据,而“每项加载”在axure视图就能看到,至于在其他中继器元素的表现上,二者的渲染也不尽相同,这个我们以后在展开细说。

到这里,我们已经完成了对“子菜单”模版的基本编辑,只差最后一部就能实现下拉框了。

至此,我们已经完成了下拉框的中继器式改写,可以优雅的实现以下效果了:

如果想改变子菜单内容,只须改变表格内容即可:

这样的复用性,比起原生组件来说也不逞多让了吧?

当然,有的小伙伴会纠结于这种实现方式下,border堆叠的bug,如下图:

这是由于中继器垂直排列的方式引起的,虽然中继器也有针对垂直排列的间隔调整,但效果不尽如人意,作为强迫症,我还是找到了解决的方案,就是边框调整,把原来的四边框,调整为三边框,虽然第一个子菜单没有了上边框,但由于受到父菜单的遮挡,整个子菜单展示也没有什么瑕疵了^0^

二、日期控件基础版

接下来我们趁热打铁,通过“日期控件”的实现来加加深对中继器的理解

(PS.日期控件axure并未提供原生版本,所以也谈不上重写,请忽略0.0)

本期我们做的是日期控件的基础版本

功能点:点击父菜单(文本框)展示日期子菜单,点击日期后将日期自动填充到父菜单,并关闭子菜单。

之所以说是基础版本呢,是因为本期只实现到一个月(31天)的功能点选,这对于大部分产品展示来说其实已经很够用了,当然后续我们也会介绍一年12个月的实现方式,请大家不要着急哈。

来,下面开始制作过程。

第一步完成后我们能看到如下效果:

完成了父菜单框架的搭建,接下来我们需要去创建日期控件子菜单。

接下来,我们只需要将数据和中继器绑定起来,就能完成日期控件了。

到这里,我们已经实现了日期控件的基本版制作了,请看效果图:

至于一些制作过程中的细节(如hover日期改变底色等)就不铺开阐述了,不懂的小伙伴可以百度一下~

至此,我们已经完成了三个组件的重写(新写),当然,同一个组件有多种实现方式,例如我们的下拉框就有“纯动态面板”制作以及“动态面板+中继器”制作,虽然方法有多种,但基于复用性和简便性的综合考量,由中继器编写的组件还是更讨好用户喜欢的,但是,中继器在使用过程中还是有很多大坑小坑,以后会慢慢带领大家一起揭晓~

在下一篇文章中,我们会对axure的常用组件“表格”进行重写,尽情期待~

 

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注