У меня есть расширенная таблица данных с расширенными гранями, следующие данные для строк:
добавленная дата, примечания, пользователь, дата изменения и т. Д.
Когда элементы будут заполнены, пользователь будетвозможность редактировать определенные вещи, такие как поле заметок.
У меня есть commandButton с этим полем заметок, и он вызывает модальную панель с расширенными лицами, но по какой-то причине моя модальная панель не получает правильную строку.скорее он всегда возвращает первую строку таблицы расширенных данных
Есть предложения?
Вот код для конкретных столбцов, обратите внимание, что он находится над a4j: form
<a4j:commandButton value="Edit Status Notes" rendered="#{selectedErrorInfo.errorId == errInfo.errorId}"
oncomplete="Richfaces.showModalPanel('statusNotesPanel', {width: 350, top: 150});" >
</a4j:commandButton>
<rich:modalPanel id="statusNotesPanel">
<center>
<h:inputTextarea value="#{errInfo.statusNotes}" style="height:100px; width:300px;" maxlength="4000"/>
<br/>
<a4j:commandButton value="Close" oncomplete="Richfaces.hideModalPanel('statusNotesPanel');" />
</center>
</rich:modalPanel>
ОТВЕТ
Хорошо, так пару вещей.Во-первых, модальная панель НЕ МОЖЕТ быть в форме исходной таблицы данных.Примером этого является
<h:form>
<rich:ExtendedDatatable>
...... info here (if there is any ModalPanel within this area with forms, it will not work
</rich?:ExtendedDataTable>
</h:form>
, поэтому вам нужно это за пределами исходной формы.
Во-вторых, вам нужно будет повторно выполнить модал-панель при открытом действии.Я использовал commandButton и установил для reRender = id формы modalPanel.пример:
<rich:commandButton reRender="blah" oncomplete="Richfaces.showModalPanel('blah', {width: 350, top: 150});">
<rich:modalPanel id= "blah">
В-третьих, я использовал DataModelSelection, чтобы позволить ajax делать все мои выборы.Вы должны сказать, чтобы использовать это
class.SelectedItem.property, так что в примере.
public class TestClass
{
@DataModel
List<Person> testItems;
@DataModelSelection("testItems")
Person selectedlistItem;
}
public class person
{
String name;
String lastName;
//getters setters etc.
}
в XHTML вам понадобится.
<rich:modalPanel>
<h:form>
<h:inputText value="#{TestClass.selectedListItem.name}"/> in order to retrieve the name
</h:form>