Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 jsf中带对话框的行可编辑数据表列_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 jsf中带对话框的行可编辑数据表列

Jsf 2 jsf中带对话框的行可编辑数据表列,jsf-2,primefaces,Jsf 2,Primefaces,我是JSF新手。我正在JSF primefaces中使用行可编辑数据表。在行可编辑数据表输入文本列中,它有两个ajax调用。一个是blur,另一个是Commandbuuton。我想从支持bean的这个输入文本列中获取值 这是我的密码: <h:form id="frm1"> <p:dataTable var="fert" value="#{fertilizerEntryBean.fertList}" id="fertList" editable="true" scrollabl

我是JSF新手。我正在JSF primefaces中使用行可编辑数据表。在行可编辑数据表输入文本列中,它有两个ajax调用。一个是blur,另一个是Commandbuuton。我想从支持bean的这个输入文本列中获取值

这是我的密码:

<h:form id="frm1">
<p:dataTable var="fert" value="#{fertilizerEntryBean.fertList}" id="fertList" editable="true"  scrollable="true" scrollWidth="900" scrollHeight="250" >

                            <p:ajax event="rowEdit" listener="#{fertilizerEntryBean.onEdit}" update=":frm1:messages :frm1:ha_amount" />  
                            <p:ajax event="rowEditCancel" listener="#{fertilizerEntryBean.onCancel}" update=":frm1:messages :frm1:ha_amount" />  
                            <p:column headerText="...." width="15">
                                <p:rowEditor />  
                            </p:column>
<p:column headerText="Receiver Plot No." width="150">
                                <p:cellEditor>  
                                    <f:facet name="output"><h:outputText value="#{fert.receiverPlot}" /></f:facet>  
                                    <f:facet name="input">
                                        <p:inputText id="receiverPlot" value="#{fert.receiverPlot}" size="15">
                                            <p:ajax event="blur" listener="#{fertilizerEntryBean.loadReceiverDetails(fert)}" update="receiverCode,receiverName"/>
                                        </p:inputText>&nbsp;
                                        <p:commandButton icon="ui-icon-search" style="height: 25px;position: absolute;" onclick="receiver_dialog.show();"/>
                                    </f:facet>  
                                </p:cellEditor>  
                            </p:column>
</p:datatable>
</h:form>
<h:form id="receiverForm">
            <p:dialog widgetVar="receiver_dialog" id="receiver_dialog">
                <p:dataTable id="receiver_table" value="#{fertilizerEntryBean.mediumFertModel}" selection="#{fertilizerEntryBean.selectedList}" selectionMode="single" var="fert" rows="10" liveScroll="true"  paginator="true" paginatorPosition="bottom" 
                             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  rowsPerPageTemplate="5,10,20">
                    <p:ajax event="rowSelect" listener="#{fertilizerEntryBean.onRowSelect}" update=':frm1:fertList:receiverPlot'/>
                    <p:column id="state_id_column" headerText="Receiver Code">
                        <h:outputText value="#{fert.receiverPlot}"/>
                    </p:column>
                </p:dataTable>
                <p:commandButton style="alignment-adjust: central;" value='OK' onclick="receiver_dialog.hide();"/>
            </p:dialog>
        </h:form>

还有我的Bean类:

public class FertilizerEntryBean implements Serializable{
private List<FertModel> fertList=null;
private FertDataModel mediumFertModel;
private FertModel selectedList;
public List<FertModel> getFertList() {
    return fertList;
}

public void setFertList(List<FertModel> fertList) {
    this.fertList = fertList;
}
public FertDataModel getMediumFertModel() {
    getReceiverCode();
    return mediumFertModel;
}

public void setMediumFertModel(FertDataModel mediumFertModel) {
    this.mediumFertModel = mediumFertModel;
}

public FertModel getSelectedList() {
    return selectedList;
}

public void setSelectedList(FertModel selectedList) {
    this.selectedList = selectedList;
}
public List<FertModel> getReceiverCode(){
Session session=HibernateUtil.getSessionFactory().openSession();
try{
    List<DosVendormaster> vendorList=session.createCriteria(DosVendormaster.class).add(Restrictions.eq("vendortype", "CGRV")).add(Restrictions.eq("block", "X")).list();
    if(vendorList.size()>0){
        for (Iterator<DosVendormaster> it = vendorList.iterator(); it.hasNext();) {
            DosVendormaster dosVendormaster = it.next();
            fertList.add(new FertModel(dosVendormaster.getSapVendorcode()));
        }
        mediumFertModel=new FertDataModel(fertList);
    }
}catch(Exception ex){
    ex.printStackTrace();
}finally{
    session.close();
}
return fertList;
}

public void onRowSelect(SelectEvent event) {
    FacesMessage msg = new FacesMessage(" Selected", ((FertModel)        event.getObject()).getReceiverPlot());
    FacesContext.getCurrentInstance().addMessage(null, msg);
    FertModel fert=new FertModel();
    fert.setReceiverPlot(((FertModel) event.getObject()).getReceiverPlot());
}
}
公共类FertifizerEntryBean实现可序列化{
私有列表fertList=null;
私有FertDataModel mediumFertModel;
私有FertModel selectedList;
公共列表getFertList(){
返回火种表;
}
公共无效设置列表(列表列表列表){
this.fertList=fertList;
}
公共FertDataModel getMediumFertModel(){
getReceiverCode();
返回介质模型;
}
公共无效setMediumFertModel(FertDataModel mediumFertModel){
this.mediumfert模型=mediumfert模型;
}
公共FertModel getSelectedList(){
返回所选列表;
}
公共作废集合选择列表(FertModel selectedList){
this.selectedList=selectedList;
}
公共列表GetReceiveCode(){
Session Session=HibernateUtil.getSessionFactory().openSession();
试一试{
List vendorList=session.createCriteria(DosVendormaster.class).add(Restrictions.eq(“vendortype”,“CGRV”)).add(Restrictions.eq(“block”,“X”)).List();
如果(vendorList.size()>0){
for(Iterator it=vendorList.Iterator();it.hasNext();){
DosVendormaster DosVendormaster=it.next();
添加(新的FertModel(dosVendormaster.getSapVendorcode());
}
mediumFertModel=新FertDataModel(fertList);
}
}捕获(例外情况除外){
例如printStackTrace();
}最后{
session.close();
}
返回火种表;
}
行上的公共无效选择(选择事件事件){
FacesMessage msg=新的FacesMessage(“选定的”((FertModel)event.getObject()).getReceivePlot());
FacesContext.getCurrentInstance().addMessage(null,msg);
FertModel fert=新的FertModel();
fert.setReceivePlot(((FertModel)event.getObject()).getReceivePlot());
}
}

您可以尝试以下操作:
FacesContext.getCurrentInstance().getViewRoot().findComponent(id)
其中id类似于
frm1:fert:(rowIndex):receiverPlot
。这就是如何找到组件并为该组件使用getValue的方法。您可以通过将
rowIndexVar
attribute设置到您的数据表中来获取rowIndex

现在我可以通过您的知识找到组件,但是我无法从数据表中为此组件设置所选值。您能否更准确地说明无法从数据表中为此组件设置所选值。如果您有问题使用
rowSelect
检查此选项,我从数据表中获得了所选值。我的问题是将所选值设置到此组件中。