中继器实现某一行前后插入行的操作

提示1:本篇教程不适合新手,以及未掌握中继器、动态面板、全局变量、局部变量、系统变量等使用的...新手。

提示2:本篇教程中,动作设置的具体细节,请参考文末源文件。

我们知道中继器可以实现列表,对于平常所见到的表格可以非常容易的实现。

并且,还可以通过中继器的一些交互动作实现添加、删除、更新、筛选与排序的操作。

但是,没有插入行的操作。

偶尔会在某些群里看到有人提出这样的需求:我要插入啊!我要在中间那个地方插入啊!

好吧!

我教你怎么插入。

先看一下插入的效果。

提示:因为AxureRP8没有在右键触发交互时屏蔽浏览器菜单(Axure RP 7是可以的),所以需要点一下屏幕中菜单以外的位置,才能看到自己的菜单。

接下来,我们来实现这个交互效果。

这里涉及到一些功能,我先来做一下描述:

  • 实现中继器列表每行包含显示状态和编辑状态;
  • 实现选项菜单;
  • 实现点击编辑按钮时,转为编辑状态;
  • 实现点击保存按钮时,更新当前行数据;
  • 实现点击删除按钮时,删除当前行数据;
  • 实现中继器某一行中点击鼠标右键时,在鼠标指针所在位置显示菜单;
  • 实现点击菜单中前面插入选项时,在行前插入新行并为编辑状态;
  • 实现点击菜单中后面插入选项时,在行后插入新行并为编辑状态。

根据上方的描述,我们来分步实现每一个功能。

一、实现中继器列表每行包含显示状态和编辑状态。

1、放入中继器并命名为“List”,双击打开中继器,在中继器的编辑区放入5个矩形并命名;

2、将前面的4个矩形全选,点鼠标右键,选择转换为动态面板,命名为“RowPanel”;

3、双击动态面板将“State1”名称改为“Show”,点中这个状态后,点击“重复”;

4、将新出现的状态命名为“Edit”,并且将状态中的所有矩形的命名去除,再添加三个文本框到前3个矩形上,分别命名。

现在中继器中所有元件组成如下:

5、在属性中为中继器“List”添加一些数据。

提示:上图中能够看到,数据集中有一列名为“IndexText”的数据,这是实现插入效果的关键,用途在后面说明。

6、在【每项加载时】为中继器添加基本交互,让列表能够显示中继器中的数据。

提示:看不懂交互的同学请去学习《中继器结构与原理详解》,不会设置交互的同学...改天再来玩儿啊!

7、在页面编辑区中,添加4个矩形作为表头,此时,已经正常显示了列表内容。

二、实现选项菜单。

添加两个矩形,作为菜单选项,并转换为动态面板(也可以组合);命名为“MenuPanel”后隐藏。

到这里所有的元件,准备完毕。

三、实现点击编辑按钮时,转为编辑状态。

编辑按钮添加【鼠标单击时】为“MenuPanel”【设置面板状态】为“Edit”,并且通过【获取焦点】的动作,将光标进入姓名输入框“NameInput”。

四、实现点击保存按钮时,更新当前行数据。

五、实现点击删除按钮时,删除当前行数据。

六、实现中继器某一行中点击鼠标右键时,在鼠标指针所在位置显示菜单。

为中继器中的动态面板“RowPanel”添加【鼠标右击时】的交互,设置动作为【移动】选项菜单“MenuPanle”【到达】鼠标指针所在的位置;并且,【显示】选项菜单“MenuPanle”。

不过,这里为了能够在当前行的前后进行插入,我们需要通过全局变量“Temp”记录一下当前行的编号,也就是前面提到的数据集中的“IndexText”。

七、实现点击菜单中前面插入选项时,在行前插入新行并为编辑状态。

提示:此处为前面插入的关键步骤。

我们思考一下:在某一行的前面插入一个新行,从编号的角度来说,当前行的编号和新插入行的编号应该是什么样的呢?

我想是这样:插入位置以及之后每一行的编号都要增加1,而新插入行的编号为插入位置的行编号。

所以,在这里,我们需要处理行的编号,将所有大于等于插入位置行编号的行,现有编号都增加1。

这个处理,通过按【条件】【更新行】动作来实现。

提示:还记得我们将插入位置的行编号存入到了“Temp”变量中吗?

然后,通过【添加行】添加一个编号为插入位置行编号的行。

最后,别忘了【隐藏】选项菜单“MenuPanel”。

八、实现点击菜单中后面插入选项时,在行后插入新行并为编辑状态。

提示:此处为后面插入的关键步骤。

后面插入和前面插入的过程差不多。

区别在于改变编号的逻辑。

后面插入时,插入位置自身编号不变,所以是将行编号大于插入位置编号的行进行编号增加1的操作。

然后,将变量中保存的编号也需要增加1,和新插入行的编号保持一致。

并且,插入的行的编号也是插入位置行编号增加1之后的编号,即变量中的新编号。

不过,到这里,大家会发现插入的行,还是在列表最下方出现。

九、添加排序

我们还需要对列表按编号升序排列,这个排序效果应该是中继器加载时就能够生效的。

十、设置插入的行为编辑状态

【添加行】动作会导致中继器列表刷新,所有行都变为正常显示状态。

如果想在插入行之后,新行为编辑状态,我们需要在中继器【每项加载时】,如果行编号是变量中保存的行编号(即新插入行的行编号),将动态面板“RowPanel”的状态设置为“Edit”。

这里要注意,因为是新增了一个用例,“Case2”会自动为“Else If”,需要在用例名称上点击鼠标右键,选择【转换为IF...】的选项进行转换。

十一、清空变量

当完成插入行的数据编辑,点击保存按钮时,中继器列表也会刷新,此时需要清空变量,以免因变量中存有编号,将对应的行转为编辑状态。

到这里,所有的交互全部设置完毕。

 

插完之后很累吧?快去好好休息吧!

最后,邀请大家关注微信订阅号“iaxure”(二维码在本站首页右上方),及时获取本站最新动态内容。

硬广插入:《两天掌握Axure RP 8》线下培训,北京、上海正在招生,报名地址https://www.axure.com.cn/product/training/。

源文件下载:http://downloads.iaxure.com/repeater_insert.rp


~~~~~~~~~~~~ 正文结束 下面没了 ~~~~~~~~~~~~

小楼老师再出新作,倾力打造Axure RP 8精品课程系列,以最短的时间高效完成学习目标,入门进阶与实战案例并重,是0基础的新手从入门到精通的必备课程。

《AxureRP 8 入门与实战》系列视频------从零入门进阶的最佳课程------【点此查看详情】


转载请注明:Axure原创教程网 » 中继器实现某一行前后插入行的操作

喜欢 (8)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 这篇文章很好 谢谢分享
    大笨蛋2018-06-28 11:50 回复