2013-05-31 60 views
0

我需要從搜索結果中僅顯示<ui:repeat>中的所選行。這是我的代碼:如何僅顯示呈現的行並在UI中隱藏其他行:重複

<h:inputText value="#{user.lname}" required="false" class="defaultText1 c_8" title="Search by user"></h:inputText> 
<h:commandButton id="submit" name="submit" action="#{user.retrieveMembersByName}" /> 

<ui:repeat id="dtable" var="u" value="#{user.getUserList()}" varStatus="status" rendered="#{not empty user.dataList}"> 

     <li> 
     <a href="#">#{u.memberId}</a> 
     <a href="#" >#{u.groupId}</a> 
     <a href="#">#{u.fname}</a> 
     <a href="#">#{u.mname}</a> 
       </li> 
</ui:repeat> 

現在它顯示所有行。如果我輸入<ui:repeat value="#{user.dataList}">,它會顯示我只搜索單行。但是,我想顯示所有行,並且只有在搜索時才顯示單行。或者我可以讓搜索到的行突出顯示?

回答

0

檢查某些條件並顯示帶有其他類的元素以「突出顯示」結果。如果需要,也可以更改其他元素的類,即隱藏它們。

的視圖:

<h:form> 
    <h:inputText value="#{userBean.userName}" required="true" /> 
    <h:commandButton value="Search" action="#{userBean.search}" /> 
    <ui:fragment rendered="#{not empty userBean.userList}"> 
     <ul> 
      <ui:repeat value="#{userBean.userList}" var="user"> 
       <li class="#{fn:contains(user.name, userBean.userName) ? 'highlight' : 'grayed'}"><a href="#">#{user.name}</a></li> 
      </ui:repeat> 
     </ul> 
    </ui:fragment> 
</h:form> 

這可以與EL用參數2.2方法調用來完成爲好,而不是使用一個JSTL function

豆子:

@ManagedBean 
@ViewScoped 
public class UserBean implements Serializable { 

    private List<User> userList;//getter 
    private String userName;//getter+setter 
    public String search() { 
     //load data and handle exceptions, if needed, do business job 
     userList = userDAO.find(userName); 
    } 

} 
+0

嗨@skuntsel感謝您的答覆.....行的亮點工程...但我想隱藏其他行時serched因素是displayed.But其顯示現在所有的行。我試圖用Bean中的if()條件檢查它,但noluck ...你能讓我如何做到這一點。 – pravi

相關問題