вид liferay-ui выбор строки

Я работаю над портлетом для отображения списка правил для выбора. И я хочу сфокусировать строку содержимого, выбранную в моей базе данных (переменная правил, загруженная на init.jsp).

Что я должен сделать, чтобы сфокусировать/выделить ровно одну строку?

Должен ли я использовать <c:when <c:otherwhise для всех .jsp:

Я показываю список правил с этим кодом:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<portlet:defineObjects />

<liferay-ui:search-container emptyResultsMessage="there-are-no-products" delta="5">
    <liferay-ui:search-container-results>
        <% 
        List<IRRule> tempResults = ActionUtil.getRules(renderRequest);
        results = ListUtil.subList(tempResults, searchContainer.getStart(),
        searchContainer.getEnd());

        total = tempResults.size();
        pageContext.setAttribute("results", results);
        pageContext.setAttribute("total", total);
        %>
    </liferay-ui:search-container-results>

    <liferay-ui:search-container-row
        className="com.everis.oriol.inputrules.model.IRRule"
        keyProperty="ruleId"
        modelVar="rule">

        <liferay-ui:search-container-column-text
            name="ruleName"
            property="ruleName"
            />  

        <liferay-ui:search-container-column-text
            name="ruleDescription"
            property="ruleDescription"
            />

        <liferay-ui:search-container-column-jsp
            path="/row.jsp"
            align="right"
            />

    </liferay-ui:search-container-row>

    <liferay-ui:search-iterator />

</liferay-ui:search-container>

В файле init.jsp у меня есть...

<% 
long groupId = themeDisplay.getScopeGroupId();
List<IRSelect> rulesPas = IRSelectLocalServiceUtil.getRule(groupId);

String rules =  rulesPas.get(0).getRuleName();
%>

Я точно хочу сравнить...

<liferay-ui:search-container-column-text
    name="ruleName"
    property="ruleName"
    />

с участием...

rules

Спасибо за помощь


person user1592470    schedule 23.04.2013    source источник
comment
Под focusing вы подразумеваете highlighting эту строку таблицы, например, изменение цвета фона для этой строки или создание элементов строки bold и т. д.?   -  person Prakash K    schedule 24.04.2013
comment
Да это оно! Я хотел бы поблагодарить вас, если вы мне поможете   -  person user1592470    schedule 24.04.2013


Ответы (1)


Один из способов, который я могу придумать, — это установить атрибут bold тега <liferay-ui:search-container-row>, который будет отображать элемент как полужирный, если его значение равно true:

<liferay-ui:search-container-row
        className="com.everis.oriol.inputrules.model.IRRule"
        keyProperty="ruleId"
        modelVar="rule"
        bold="<%=rules.equals(rule.getRuleName()) %>">

...

</liferay-ui:search-container-row>

Или, установив класс CSS для всей строки, если вам нужны дополнительные параметры для стилизации строки:

<liferay-ui:search-container-row
    className="com.everis.oriol.inputrules.model.IRRule"
    keyProperty="ruleId"
    modelVar="rule">

    <%
    if (rules.equals(rule.getRuleName())) {
        // here "row" is the ResultRow object, instance for each row
        row.setClassName("my-custom-css-class");
    }
    %>

    <liferay-ui:search-container-column-text
        name="ruleName"
        property="ruleName"
        />

     ...

</liferay-ui:search-container-row>

Если вы хотите, чтобы по-разному отображался только текст столбца правила в этой строке, а не вся строка, тогда:

<liferay-ui:search-container-column-text
        name="ruleName"
        property="ruleName"
        cssClass="<%=rules.equals(rule.getRuleName()) ? \"my-custom-css-class\" : \"\" %>"
        />
person Prakash K    schedule 24.04.2013