Захват отдельных ячеек таблицы p: dataTable - PullRequest
0 голосов
/ 12 сентября 2018

Есть ли способ, которым я могу получить значения отдельных ячеек в базе данных JSF на основе щелчка пользователя?

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

How the datatable looks like

Ниже приведен вывод, который я хочу записать в текстовое поле.

desired outocme

Какой самый лучший и самый эффективный способ достиженияэто JSF.Не обязательно быть датированным, но я надеюсь, что вы знаете, чего я хочу достичь здесь.

1 Ответ

0 голосов
/ 12 сентября 2018

Я попытался заставить его работать с данными, так как он может получить значение до уровня ячейки.Я использую editmode = "ячейка", чтобы я мог получить доступ к уровню ячейки.inputText отключен, потому что вы не хотите, чтобы пользователь его редактировал.xhtml:

<datatable value"#{yourBean.listValue" var="list" editMode="cell" editable="true"
----and other stuffs----->
    <p:ajax event="cellEdit" listener="#{yourBean.selectedCell}"/>
    <p:column headerText="A">
        <p:cellEditor>
            <f:facet name="output">
                <p:outputLabel value="#{list.valueA}"/>
            </f:facet>
            <f:facet name="input">
                <p:inputText value="#{list.valueA}" disabled="true"/>
            </f:facet>
        </p:cellEditor>
    </p:column>
    <p:column headerText="B">
        <p:cellEditor>
            <f:facet name="output">
                <p:outputLabel value="#{list.valueB}"/>
            </f:facet>
            <f:facet name="input">
                <p:inputText value="#{list.valueB}" disabled="true"/>
            </f:facet>
        </p:cellEditor>
    </p:column>
----and so on---
</p:datatable>

YourBean:

String result, A, B;

public void selectedCell(CellEditEvent event) {
    switch(event.getColumn().getHeaderText()) {
        case "A": A= event.getOldValue().toString();
          break;
        case "B": B = event.getOldValue().toString();
          break;
    }
    result = A + B;
}

Я использую переключатель, если вы хотите, чтобы результат был в порядке.для получения дополнительной информации о редактировании ячеек в datatable, проверьте эту ссылку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...