五、更新
实际上,对于新增加的权限组列表项在原有列表项上方出现还有另外一种解决方法。
我们可以通过权限组ID的升序排列来实现。
案例33:更新列表数据
但是,只增加按“GroupID”列升序排序的动作并不能解决问题。
因为,我们每次【添加行】的时候,“GroupID”都是“1”。
我们需要先让原有列表项的“GroupID”都增加1,这样新增加列表项的“GroupID”才是最小的。
在新建权限组面板的“确定”按钮上,我们添加新的动作,【更新】中继器“GroupList”中【全部】数据行,让这些数据行的“GroupID”自增“1”,也就是当前的列值加1,具体公式为“[[Item.GroupID+1]]”。
注:规则中写入“true”即表示全部数据行均符合规则。
最后,再把【更新行】的动作拖动到交互的第1个位置上,以免更新新添加的行。(图5-177)
六、筛选
案例34:列表筛选功能
权限组列表能够根据权限组名称进行模糊查询。(图5-178)
1、我们先添加一些测试数据,这些数据从素材中的Excel表格中复制,并粘贴到Axure RP的数据集中。(图5-179)
2、准备查询功能的相关元件。(图5-180)
输入查询内容的文本框“KeyInput”在【鼠标悬停】和【获取焦点】时分别带有不同的【交互样式】。(图5-181)
3、为元件添加交互。
(1)搜索按钮组合“Search”在将【鼠标移入时】会【逐渐】【显示】灰色的背景“SearchBg”,并且【鼠标移出时】会【逐渐】【隐藏】。(图5-182)
(2)在搜索框中输入关键词的时候,列表会实时呈现查询结果,并不需要点击搜索按钮。所以,我们需要添加的交互是文本框“KeyInput”【文本改变时】【添加筛选】到中继器“GroupList”,筛选的【规则】是权限组名称列值中包含输入的关键字,具体公式为“[[Item.GroupName.indexOf(This.text)>=0]]”。(图5-183)
文本框“KeyInput”输入的关键字我们通过系统变量“This.text”进行获取,而权限组名称包含关键字的规则我们在条件表达式中通过函数“indexOf()”来表达。
字符串函数“indexOf()”能够查询字符串对象中是否能够找到参数字符串。如果能够找到参数字符串,函数的运算结果是参数字符串在被查询字符串中的位置。如果找不到参数字符串,函数的运算结果是“-1”。
所以&