Я новичок в этом, я использую простые лица и создаю динамическую таблицу, эта таблица данных получает свои значения из списка, созданного управляемым компонентом.
Мне нужно установить свойство другого управляемого компонента со значением столбца, сгенерированного таблицей данных.
Например: Col1 имеет определенное значение, я хочу щелкнуть по этому значению, и должно появиться диалоговое окно, отображающее это значение col1.
<p:dataTable id="dataTable" var="c" value="#{databaseSearch.customerList}"
paginator="true" rows="10" paginatorAlwaysVisible="false"
paginatorTemplate="Page {CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} Rows per page {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15,30">
<p:column>
<f:facet name="header">
<h:outputText value="Machine" />
</f:facet>
<p:commandButton id="xxx" value="#{c.machine}" action="#{updateEntry.setMachine(c.machine)}" ajax="true" onclick="dlg1.show();" styleClass="ui-Machinebutton"/>
<!-- styleClass="ui-Machinebutton" -->
</p:column>
У управляемого компонента updateEntry есть методы получения и установки. Фасоль
@ManagedBean
@SessionScoped
public class UpdateEntry implements Serializable {
public Long Machine;
public Long getMachine() {
return Machine;
}
public void setMachine(Long Machine) {
this.Machine = Machine;
}
}
Диалоговое окно
<p:dialog id="modalDialog" header="Modal Dialog" widgetVar="dlg1" modal="true" height="100" dynamic="True">
<h:outputText value="#{updateEntry.machine}" />
</p:dialog>
Я понимаю, что для передачи параметра в диалоговое окно мне понадобится помощь управляемого компонента. Однако таблица данных генерируется случайным образом, и я не могу передать это конкретное случайное значение. Итак, как мне передать случайное значение командной кнопки и установить управляемый компонент при нажатии?
Цель
Когда нажата кнопка команды, я хочу, чтобы ее значение было передано управляемому компоненту, поскольку это случайно сгенерированная таблица данных, я не уверен, как я могу этого добиться.
Обновить
Оно работает ! Тот же код обновляет updateEntry.machine, но проблема заключается в том, что нажатие на кнопку открывает диалоговое окно перед обновлением updateEntry.machine до нового значения, в диалоговом окне отображается ранее выбранный параметр. «Действие» происходит до «Onclick»? Или это наоборот ? Мне нужно сначала обновить компонент, а затем открыть диалоговое окно, чтобы показать более новое значение. Я пробовал как True, так и False динамического свойства диалогового окна, не уверен, для чего это нужно.
Также мне нужно обновить страницу, чтобы получить новое значение, загруженное в диалоговое окно, иначе независимо от того, какую командную кнопку я нажимаю, она показывает мне значение командной кнопки, которую я сначала нажал, опубликовать обновление страницы, оно показывает значение команды кнопка была нажата последним.