我有具有输入元素集的素面形式,最后按钮让我们称之为i_BTN,这不是提交按钮,数据表让我们称之为f_DT。
我的逻辑是填充一组元素,让我们调用这些元素: inpt_1和inpt_2并非所有元素,当点击i_BTN时,它会在f_DT中添加新记录。
我在i_BTN中使用部分提交来表示我没有提交所有字段的原因。 Button完成任务并在f_DT中添加新记录 我的大不了的是: 当我在f_DT中添加ajax以捕获rowSelect时,SelectEvent对象传递为null值。 完全提交SelectEvent传递值。
<h:form id="generalForm">
<p:inputText label="full_submit_input_one" id="inpt1"/>
<p:inputText label="full_submit_input_two" id="inpt2"/>
<h:panelGrid columns="4" id="partial_submit_Panel">
<p:inputText label="partial_submit_input_one" id="inpt3"/>
<p:inputText label="partial_submit_input_two" id="inpt4"/>
</h:panelGrid>
<p:dataTable id="itemDT" var="item" value="#{itemView.items}" selectionMode="multiple"
selection="#{itemView.selectedItems}"
rowKey="#{fee.Id}">
<p:ajax event="rowSelect"
listener="#{dtFeesView.onRowSelect}" />
<p:column headerText="Input three">
<h:outputText value="#{fee.inpt3}" />
</p:column>
<p:column headerText="Input four">
<h:outputText value="#{fee.inpt4}" />
</p:column>
</p:dataTable>
<p:commandButton value="Full Submit" actionListener="#{itemView.add}"/>
<p:commandButton value="Partial Submit" actionListener="#{itemView.insertRecord}" process=":generalForm:partial_submit_Panel"/>
@ManagedBean(name="itemView")
@ViewScoped
public class ItemView{
private ItemModel selectedItems[];
// getters and setters for selectedItems
private List<ItemModel> items;
// getters and setters for items
public void add(){
// add item to i.e database
}
public void insertRecord(){
// add itemModels to items list
}
public void onRowSelect(SelectEvent event) {
ItemModel model =(ItemModel)event.getObject();
// model is null in case of process with value :generalForm:partial_submit_Panel
//model is not null in case of process with value generalForm "submit full form"
}
}
请帮忙。 问候。