Функциональность Datatable cellEditor в forEach генерируется Datatable - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь сгенерировать редактируемую таблицу данных, динамически зависящую от набора результатов ранее выполненного SQL-запроса.В зависимости от того, какие столбцы будут иметь постоянное значение, я стараюсь не отображать их.Та часть кода работает просто отлично, все отображается так, как мне бы хотелось.Мои проблемы с cellEditor.Я генерирую свою таблицу следующим образом:

    <p:dataTable ajax="true" var="mBT" value="#{stammdaten.bbvList}" id="meldeBearbeitungsTable" editable="true" editMode="cell" scrollable="true" scrollHeight="400" style="width:600px">
    <p:ajax event="cellEdit" listener="#{stammdaten.onCellEdit}" update=":Mb:message"/>
    <c:forEach var="column" items="#{stammdaten.columns}">
        <p:column headerText="#{column.header}">
            <f:attribute name="myCol" value="#{column}" />
            <span>
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{mBT[column.property]}"></h:outputText>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{mBT[column.property]}">
                            <p:keyFilter regEx="/[0-9]/i"/>
                        </p:inputText>
                    </f:facet>
                </p:cellEditor>
            </span>
        </p:column>
      </c:forEach>
    </p:dataTable>

bbvList - это список бинов с различными значениями.

columns - это список bean-компонентов для идентификации ядра header-Texts, соответствующего соответствующим переменным.

Так что теперь проблема сама в себе: вот как выглядит cellEditor, когда я нажимаю на него: Issue-Picture

Итак, в этом примере я попытался отредактировать поле со значением «8».onCellEdit срабатывает (System.out.println печатается на консоли), но я не могу изменить значение в соответствующем поле.

Есть ли проблемы с cellEdit при инициализации forEach для dataTable?Если да, есть ли способ это исправить?Иначе, что я делаю неправильно?

Поскольку только определенный компонент html-стороны кода не работает должным образом, я пока не буду публиковать ненужный код Java.При необходимости я добавлю и это.

Надеюсь, кто-то может помочь:)

1 Ответ

0 голосов
/ 06 июня 2018

Получает атрибут и / или диапазон, где причина проблемы.Простое удаление их решило проблему с cellEdit.следующие работы прекрасно:

<p:dataTable ajax="true" var="mBT" value="#{stammdaten.bbvList}" id="meldeBearbeitungsTable" editable="true" editMode="cell" scrollable="true" scrollHeight="400" style="width:600px">
  <p:ajax event="cellEdit" listener="#{stammdaten.onCellEdit}" update=":Mb:message"/>
  <c:forEach var="column" items="#{stammdaten.columns}">
    <p:column headerText="#{column.header}">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mBT[column.property]}"></h:outputText>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mBT[column.property]}">
                        <p:keyFilter regEx="/[0-9]/i"/>
                    </p:inputText>
                </f:facet>
            </p:cellEditor>
    </p:column>
  </c:forEach>
</p:dataTable>
...