귀하의 질문에 대한 답변을 알고 싶습니다. 전통적인 자바 스크립트를 사용하면 그 효과를 얻을 수 있지만 리치를 사용할 때는 클라이언트에 새 행을 추가 할 수 없습니다.
그러나 나는 서버 함수에 대한 ajax 호출을 사용하여이 함수가 새로운 빈 행을 dataTable List에 추가하고 rich : datatable을 다시 렌더링했습니다.
<rich:column>
<f:facet name="header"><h:outputLabel value="#{msgs.notes}" style="font-size:15px;"/> </f:facet>
<h:inputText value="#{line.notes}" >
<a4j:ajax event="blur"
execute="datatable"
render="datatable"
immediate="true"
listener="#{saleBacking.addNewLineInDataTable}"
oncomplete="document.getElementById('myform:datatable:#{saleBacking.view_no_counter-1}:line').focus();"/>
</h:inputText>
</rich:column>
및 올바른 년대 maneged 콩
public void addNewLineInDataTable(AjaxBehaviorEvent event)
{
SaleLine saleLine = new SaleLine();
saleLine.setId(salesLineslist.isEmpty() ? 1 : salesLineslist.get(salesLineslist.size() - 1).getId() + 1);
salesLineslist.add(saleLine);
saleLine = new SaleLine();
saleLine = new SaleLine();
saleLine.setSaleId(sale);
saleLine.setViewNo(++view_no_counter);
saleLine.setDiscount(0d);
saleLine.setItemPrice(0d);
salesLines.add(saleLine);
}
내 XHTML 페이지를 참조하십시오. 행을 추가/제거하려면 전체 테이블을 다시 렌더링해야합니다. –