axure商城

中繼器單條件、多條件搜索詳解

今天教大家一個非常實用的技能——模糊搜索。在這里,我們以英雄聯盟這個游戲的數據為例,在這個游戲里英雄都有自己的名字,同時也有玩家在交流過程中形成的昵稱。例如,戰爭女神在玩家口中的昵稱就是輪子媽。如何在搜索時同時對英雄的名字和昵稱一起模糊搜索呢?

我們先創建一個中繼器,把英雄的名字和昵稱錄入進去吧!再在上面加一個表頭,便于我們知曉對應列數據的內容是什么。當然,我們還需要一個文本框,在文本框輸入好內容回車后,將對應的淑女從中繼器中篩選出來。

QQ截圖20160326215555

中繼器數據創建好之后,別忘記在【每項加載時】中把對應的數據賦值在對應的位置,例如我現在的這個案例,就是需要把名字文本設定到矩形中。

下面進入正題,首先我們想做的是在文本框按下回車之后才篩選,所以應該在交換中選擇【按鍵按下時】,并且添加條件,按下的這個鍵必須是回車鍵之后才做出對應的動作。QQ截圖20160326215850

下面是篩選中繼器數據,在此我們要學習一個函數——[[LVAR.indexOf(‘searchValue’)]]

LVAR:在哪兒搜索?

searchValue:搜什么?如果是直接在此輸入文本,需要兩側加單引號。

這個函數的意思是:在LVAR搜索searchValue。

 

那么,搜索到了之后呢?會反饋我們結果,如果沒找到的話會返回值-1,如果找到了則會返回你找的這個字的位置。

需要注意的是,返回的位置是從0開始的,也就是說,如果在第1個字就出現了,那么返回值是0,第2個字出現了,那么返回值是1。

我們在制作需求中,一般都是只要出現了就算是有效數據,而不是需要這個字必須在第幾位之后出現才有效。

所以,只要返回的數據大于-1,無論是任何值,意思都是說搜索到了這個文本的。

我們添加局部變量text,代表文本框內的文字:

QQ截圖20160326220322

如果我們只想搜索名字中包含關鍵字的數據,那么這個函數就應該是:

[[(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的數據呢?那么應該怎么寫這個函數呢?

給TA買糖
共{{data.count}}人
人已贊賞
高級教程

在局域網用Axure搭建、編輯團隊項目實例

2016-3-4 16:29:42

高級教程

Axure高保真還原Web首頁布局和交互教程

2016-4-8 17:59:37

axure商城
0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索
俄罗斯videoxxxoo