2012-01-12 13 views
11

मेरे पास एक पृष्ठ है जिसमें एक संवाद और एक संवाद में घोंसला है। मैं जब बटन मुख्य रूप में क्लिक किया संवाद करने के लिए पैरामीटर पारित करने के लिए की जरूरत हैउसी पृष्ठ में संवाद के लिए पास पैरामीटर

<h:form> 
<p:dataTable var="form" value="#{myBean.formList}"> 
    <p:commandButton id="selectProduct" 
          update="selectProductForm" oncomplete="selectProductDlg.show()" 
          image="ui-icon-" > 
          <f:param name="formId" value="#{form.id}" /> 
       </p:commandButton> 
</p:dataTable> 
</h:form> 

<p:dialog> 
...<h:form> 
<p:commandButton action="#{myBean.setSelected}" 
        update="main_form" 
        oncomplete="if(#{myBean.errorText == 'SUCCESS'}){ selectProductDlg.hide();}" 
        value="Sec"> 
       </p:commandButton> 


मैं कोड के साथ myBean में formId नहीं देख सकते हैं:

if (form == null) { 
      HttpServletRequest req = (HttpServletRequest) FacesContext 
        .getCurrentInstance().getExternalContext().getRequest(); 
      if(req.getParameter("formId") != null) { 
       formId = Long.valueOf(req.getParameter("formId")); 
      } 
      if (formId != null && !"".equals(formId)) { 
       form = formService.findById(formId); 
      } 
     } 

जहां मैं गलत कर रहा हूँ धन्यवाद

उत्तर

17

मान लीजिए कि बीन दृश्यमान क्षेत्र में है, बस इसे बीए के रूप में सेट करें datatable कॉलम में कमांड बटन की कार्रवाई विधि में n संपत्ति निपुणता।

<h:form> 
    <p:dataTable var="form" value="#{myBean.formList}"> 
    <p:column> 
     <p:commandButton id="selectProduct" 
         action="#{myBean.setCurrentForm(form)}" 
         update="selectProductForm" oncomplete="selectProductDlg.show()" 
         image="ui-icon-"> 
     </p:commandButton> 
    </p:column> 
    </p:dataTable> 
</h:form> 

<p:dialog> 
    <h:form> 
    <p:commandButton action="#{myBean.setSelected}" 
        update="main_form" 
        oncomplete="if(#{myBean.errorText == 'SUCCESS'}){ selectProductDlg.hide();}" 
        value="Sec"> 
    </p:commandButton> 
    </h:form> 
</p:dialog> 

आप संवाद में एक रद्द बटन है, तो आप अपनी कार्रवाई विधि null के लिए सेट करते हैं की जरूरत है।

POST अनुरोधों में कच्चे HTTP अनुरोध पैरामीटर के साथ घूमने की कोई आवश्यकता नहीं है। <f:param> जितना संभव हो सके जीईटी अनुरोधों में उपयोग किया जाना चाहिए (उदा। <h:link>, <h:button>, आदि)।

+0

बहुत बहुत धन्यवाद, मैं मैं कार्रवाई विधि के लिए पैरामीटर पारित नहीं हो सकता सोचता था, अब मैं अपने कोड संपादित और यह – merveotesi

+0

काम आपका स्वागत है। – BalusC

-1

मैंने नीचे दिखाए गए अनुसार पीडीटाटेबल्स के डाटामॉडल को आसानी से बुलाया है।

  1. जावा बीन में मैं प्राप्त बैकएंड से डेटा को ताज़ा कर रहा हूं FdnsController.refreshData विधि।
    1. फ़ॉर्म में डेटा रीफ्रेश करने के लिए मैं संवाद छुपाए जाने के बाद डेटामैडेल को # {प्राप्तFdnsController.newReceivedFdnsDataModel} के रूप में ताज़ा कर रहा हूं। नीचे दिखाए गए अधिक विवरण।

सादर खलील

+0

कृपया यह पता लगाने का प्रयास करें कि आपकी सुझाई गई संपादन कतार क्यों पूर्ण है और क्यों संसाधित नहीं किया गया है क्योंकि पोस्ट में वर्तमान में कोई उपयोगी फ़ॉर्म नहीं है। –

संबंधित मुद्दे