Hello Guys,
<h:form id="targetsMenuPanelForm">
<p:commandButton id="cancel" ajax="false" process="@this" value="Cancel"
action="#{myMenuTabsBean.cancel}" styleClass="uta-button button-red" />
<p:commandButton id="save" process="@form" action="#{myMenuTabsBean.save}"
update="@form" value="Save" />
<p:commandButton id="new" action="#{myBackingbean.addEmptyRow}"
process="@this" update="myTable" value="New" />
<p:commandButton id="delete" value="Delete"
action="#{myBackingbean.deleteRow}" process="@form" update="@form" />
<p:dataTable id="myTable" value="#{myBackingbean.myDataModel}"
var="myList" selection="#{myBackingbean.selectedRows}">
<p:column selectionMode="multiple" id="select" />
<p:column id="namecol" headerText="Name">
<p:inputText id="name" value="#{myList.targetName}" />
</p:column>
<p:column id="typecol" headerText="Type">
<p:selectOneMenu id="types" value="#{myList.type}">
<f:selectItem itemLabel="Direct Dial" itemValue="DirectDial" />
<f:selectItem itemLabel="Private Wire" itemValue="PrivateWire" />
</p:selectOneMenu>
</p:column>
</p:dataTable>
</h:form>
위의 코드는 내 XHTML입니다. New 버튼을 클릭 할 때마다 빈 행이 목록에 추가됩니다.
.primefaces datatable 선택 속성 항상 첫 번째 행을 처음으로 채우기
이제 새 단추를 두 번 클릭하여 두 개의 빈 행을 추가했다고 가정합니다. 이제 두 개의 행에 데이터를 채우고 두 번째 행의 checkbox/selected 행을 확인한 다음 db에이 두 번째 행을 저장하는 저장 버튼을 클릭했습니다.
항상 첫 번째 행이 데이터 테이블의 선택 특성에
으로 매핑 된 배열로 채워지고 db에 저장됩니다.
내가 비어있는 첫 번째 행을 유지하는 경우 가정 및 두 번째 행을 채우고 확인/초
행을 선택하고 저장하려고, 응용 프로그램 이름과 현재
첫 번째 행을 선택하지 두 번째 행을 입력하면 오류가 발생합니다. 내가 첫 번째 행을 선택/취소하고
두 번째 행을 선택/확인하고 모든 것을 저장하려고 시도하면 잘됩니다.
아무도 내가 이것을 해결하는 데 도움이 될 수 있겠습니까? 미리 감사드립니다.
답장을 보내 주셔서 감사 드리며 지연을 사과드립니다. 이전에 나는 실제 개발자가 아니기 때문에 페이지에서 중첩 된 폼의 사용을 관찰하지 못했습니다 (실제로이 페이지는 마스터 폼을 가진 다른 페이지에 포함되었습니다). 중첩 된 양식을 제거하고 불필요한 ajax 호출을 제거했습니다. 이제는 모든 것이 잘 작동합니다. xhtml은 괜찮 았으므로 대답을 수락했다. –
문제가 해결되었습니다. – nosnhoj