Axure多条件筛选+模糊搜索

根据条件筛选:

基本的中继器筛选操作,在外部设置文字(将中继器数据对应到表头),在搜索按钮的“鼠标单击时”添加“中继器--添加筛选,[[Item.status==zt]] 即中继器对应列数值==选中的条件 ”,这适合于单个条件筛选。

模糊搜索:

在外部设置文字(将中继器数据对应到表头),在搜索按钮的“鼠标单击时”添加“中继器--添加筛选,[[Item.number.indexOf(numb)>-1]]  即在中继器对应列数值中搜索 输入的文字。

函数——[[LVAR.indexOf('searchValue')]]

LVAR:在哪儿搜索?

searchValue:搜什么?如果是直接在此输入文本,需要两侧加单引号。

这个函数的意思是:在LVAR搜索searchValue。

那么,搜索到了之后会反馈我们结果,如果没找到的话会返回值-1,如果找到了则会返回你找的这个字的位置。

需要注意的是,返回的位置是从0开始的,也就是说,如果在第1个字就出现了,那么返回值是0,第2个字出现了,那么返回值是1。

我们在制作需求中,一般都是只要出现了就算是有效数据,而不是需要这个字必须在第几位之后出现才有效。

所以,只要返回的数据大于-1,无论是任何值,意思都是说搜索到了这个文本的。

注意:[[LVAR.indexOf('searchValue')]]中这个单引号去掉去掉去掉去掉,只有填写真实数值时才需要单引号,并且在函数中所有符号,例如()==&&‘’ 等都必须使用英文符号!否则函数可能失效!!!

以上为筛选和模糊搜索的基本操作,但是试验后发现,当我添加多个条件筛选时,功能失效,总有一个两个筛选不管用了。

网上有一种攻略是,添加多个条件进行筛选,但是过于复杂。(下图,条件越多,需要添加的case越多)

多个case方法

解决方案

当我有3个模糊搜素+2个条件筛选时,只需要添加一个case

[[(ztj=='全部'||Item.status==ztj)&&(lxj=='全部'||Item.type==lxj)&&(bhj==''||Item.number.indexOf(bhj)>-1)&&(adj==''||Item.publisher.indexOf(adj)>-1)&&(mcj==''||Item.name.indexOf(mcj)>-1)]]

注意每个&&前后的函数都必须加(),所有符号用英文的!

你可能感兴趣的:(Axure多条件筛选+模糊搜索)