axure中继器单条件、多条件搜索详解
2017-09-09 16:08:23 来源: 评论:0 点击:
我们先创建一个中继器,把英雄的名字和昵称录入进去吧!再在上面加一个表头,便于我们知晓对应列数据的内容是什么。当然,我们还需要一个文本框,在文本框输入好内容回车后,将对应的淑女从中继器中筛选出来。
中继器数据创建好之后,别忘记在【每项加载时】中把对应的数据赋值在对应的位置,例如我现在的这个案例,就是需要把名字文本设定到矩形中。
下面进入正题,首先我们想做的是在文本框按下回车之后才筛选,所以应该在交换中选择【按键按下时】,并且添加条件,按下的这个键必须是回车键之后才做出对应的动作。
下面是筛选中继器数据,在此我们要学习一个函数——[[LVAR.indexOf(‘searchValue’)]]
LVAR:在哪儿搜索?
searchValue:搜什么?如果是直接在此输入文本,需要两侧加单引号。
这个函数的意思是:在LVAR搜索searchValue。
那么,搜索到了之后呢?会反馈我们结果,如果没找到的话会返回值-1,如果找到了则会返回你找的这个字的位置。
需要注意的是,返回的位置是从0开始的,也就是说,如果在第1个字就出现了,那么返回值是0,第2个字出现了,那么返回值是1。
我们在制作需求中,一般都是只要出现了就算是有效数据,而不是需要这个字必须在第几位之后出现才有效。
所以,只要返回的数据大于-1,无论是任何值,意思都是说搜索到了这个文本的。
我们添加局部变量text,代表文本框内的文字:
如果我们只想搜索名字中包含关键字的数据,那么这个函数就应该是:
[[(item.name.indexof(text)>-1]]
这个的意思是,在item.name这列数据中搜索text文本,如果搜索到了,那么就将数据筛选出来。
如果我们想要2列数据任意1列,任意1列搜索到就算符合条件呢?
第1列符合的话返回值是-1,第二列同样也是-1,两条加起来就是-2,所以,这个函数就应该是:
[[(item.name.indexof(text)+item.nickname.indexof(text))>-2]]
下面给大家出一个课后思考题:
如果我想要筛选出2列数据都包含text的数据呢?那么应该怎么写这个函数呢?