Расширенная таблица данных и модальная панель - PullRequest
0 голосов
/ 22 августа 2011

У меня есть расширенная таблица данных с расширенными гранями, следующие данные для строк:

добавленная дата, примечания, пользователь, дата изменения и т. Д.

Когда элементы будут заполнены, пользователь будетвозможность редактировать определенные вещи, такие как поле заметок.

У меня есть 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>

1 Ответ

1 голос
/ 23 августа 2011

Объявлена ​​ли ваша modalPanel в итерации таблицы данных?

В этом случае (и я так думаю) проблема в том, что все ваши модальные панели имеют одинаковый идентификатор (statusNotesPanel). Попробуйте объединить statusNotesPanel и errInfo.errorId в качестве идентификатора богатого: modalPanel.

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