2013-12-06 3 views
1

У меня есть одна проблема, которая должна быть решена как можно скорее, и вам понадобятся ребята. У меня есть datatable с selectBooleanCheckbox и фильтрация столбцов и кнопка Delete (ajax = "false"). Когда загружается страница, у меня есть пять записей в этом порядке: запись 1, запись 2, запись 3, запись 4, запись 5. После этого я фильтрую на 3. Затем я устанавливаю флажок и нажимаю «Удалить». Но запись 1 была удалена вместо этого.Неверная запись, выбранная при фильтрации данных.

Спасибо заранее!

<td><p:commandButton ajax="false" type="submit" 
      value="#{msg.rq1001_command_delete}" styleClass="commandButton" 
      id="rq1001_command_delete" 
      action="#{pc_Rq1001.doRq1001_command_deleteAction}"></p:commandButton> 
    </td> 

    <table> 
     <tbody> 
      <tr valign="top"> 
       <td valign="top" width="760"><p:dataTable 
        styleClass="dataTable" id="rq1001_datatable_request" 
        value="#{pc_Rq1001.w_request.listrequest}" var="varlistrequest" 
        rows="50" paginator="true" 
        paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} 
        {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
        rowsPerPageTemplate="10, 25, 50, 75,100,200" 
        resizableColumns="true" paginatorPosition="bottom" 
        filteredValue="#{pc_Rq1001.w_request.listOfFilteredRequest}"> 

        <p:column id="column1" width="20"> 
         <f:facet name="header"> 
         </f:facet> 
         <p:selectBooleanCheckbox styleClass="selectBooleanCheckbox" 
          id="rq1001_checkbox_select" value="#{varlistrequest.select}"></p:selectBooleanCheckbox> 
        </p:column> 
        <p:column id="column3" width="40" resizable="true" 
         sortBy="#{varlistrequest.approved_sn}" 
         style="text-align: left; font-weight : 400" 
         headerText="#{msg.rq1001_gridheader_approved}"> 
         <h:outputText styleClass="outputGridText" id="text3" 
          value="#{varlistrequest.approved_sn}"></h:outputText> 
        </p:column> 
        <p:column id="column_ID" width="80" 
         sortBy="#{varlistrequest.requesttradeid}" 
         filterBy="#{varlistrequest.requesttradeid}" 
         filterMatchMode="contains" resizable="true" 
         filterStyle="width:70px" 
         style="text-align: left; font-weight : 400" 
         headerText="#{msg.rq1001_gridheader_reqtradeid}" 
         filterValue="#{varlistrequest.fv_requesttradeid}"> 
         <p:commandLink ajax="false" styleClass="commandLink" 
          id="rq1001_commandlink_requestid" 
          action="#{pc_Rq1001.doRq1001_commandlink_requestidAction}"> 
          <h:outputText styleClass="outputGridText_px" 
          id="rq1001_gridoutput_reqid" 
          value="#{varlistrequest.requesttradeid}"></h:outputText> 

          <f:param name="clicked_requestid" 
          value="#{varlistrequest.requestid}"></f:param> 
         </p:commandLink> 

         <f:attribute value="true" name="nowrap" /> 
        </p:column> 

        <p:column id="column2" width="80" 
         sortBy="#{varlistrequest.acctcntr_sn}" 
         filterBy="#{varlistrequest.acctcntr_sn}" 
         filterMatchMode="contains" resizable="true" 
         filterStyle="width:70px" 
         style="text-align: left; font-weight : 400" 
         headerText="#{msg.rq1001_gridheader_acctcntr}" 
         filterValue="#{varlistrequest.fv_acctcntr_sn}"> 
         <h:outputText styleClass="outputGridText_px" 
          id="rq1001_output_acctcntr_sn" 
          value="#{varlistrequest.acctcntr_sn}"></h:outputText> 
         <f:attribute value="true" name="nowrap" /> 
        </p:column> 
        <p:column id="column5" width="60" 
         sortBy="#{varlistrequest.status_sn}" 
         filterBy="#{varlistrequest.status_sn}" 
         filterMatchMode="contains" resizable="true" 
         filterStyle="width:50px" 
         style="text-align: left; font-weight : 400" 
         headerText="#{msg.rq1001_gridheader_status}" 
         filterValue="#{varlistrequest.fv_status_sn}"> 
         <h:outputText styleClass="outputGridText_px" id="text1" 
          value="#{varlistrequest.status_sn}"></h:outputText> 
         <f:attribute value="true" name="nowrap" /> 
        </p:column> 
        <p:column id="column7" width="80" 
         sortBy="#{varlistrequest.reqdate}" 
         filterBy="#{varlistrequest.reqdate}" filterMatchMode="contains" 
         resizable="true" filterStyle="width:70px" 
         style="text-align: left; font-weight : 400" 
         headerText="#{msg.rq1001_gridheader_reqdate}" 
         filterValue="#{varlistrequest.fv_reqdate}"> 
         <h:outputText styleClass="outputGridText_px" id="text7" 
          value="#{varlistrequest.reqdate}"> 
          <f:convertDateTime pattern="#{msg.i18n_date_format}" /> 
         </h:outputText> 
         <f:attribute value="true" name="nowrap" /> 
        </p:column> 
        <p:column id="column4" width="200" 
         sortBy="#{varlistrequest.reqdescription}" 
         filterBy="#{varlistrequest.reqdescription}" 
         filterMatchMode="contains" resizable="true" 
         filterStyle="width:190px" 
         style="text-align: left; font-weight : 400" 
         headerText="#{msg.rq1001_gridheader_description}" 
         filterValue="#{varlistrequest.fv_reqdescription}"> 
         <h:outputText styleClass="outputGridText_px" id="text2" 
          value="#{varlistrequest.reqdescription}"></h:outputText> 
         <f:attribute value="true" name="nowrap" /> 
        </p:column> 
        <p:column id="column8" width="200" 
         sortBy="#{varlistrequest.done_description}" 
         filterBy="#{varlistrequest.done_description}" 
         filterMatchMode="contains" resizable="true" 
         filterStyle="width:190px" 
         style="text-align: left; font-weight : 400" 
         headerText="#{msg.rq1001_gridheader_contract_details}" 
         filterValue="#{varlistrequest.fv_done_description}"> 
         <p:commandLink ajax="false" styleClass="commandLink" 
          id="rq1001_commandlink_done_description" 
          action="#{pc_Rq1001.doRq1001_commandlink_done_descriptionAction}"> 
          <h:outputText styleClass="outputGridText_px" 
          id="rq1001_output_contract_details" 
          value="#{varlistrequest.done_description}"></h:outputText> 
          <f:param name="clicked_done_requestid" 
          value="#{varlistrequest.requestid}"></f:param> 
         </p:commandLink> 
         <p:commandLink ajax="false" styleClass="commandLink" 
          id="rq1001_commandlink_process" 
          action="#{pc_Rq1001.doRp1001_commandlink_processAction}"> 
          <h:outputText id="text5" styleClass="outputGridText_px" 
          rendered="#{varlistrequest.processable}" 
          value="#{msg.rp1001_output_process}" 
          style="background-color: #0000a0; color: white"></h:outputText> 
          <f:param name="process_requestid" 
          value="#{varlistrequest.requestid}"></f:param> 
         </p:commandLink> 
         <f:attribute value="true" name="nowrap" /> 
        </p:column> 
       </p:dataTable> 
       </td> 
      </tr> 
     </tbody> 
    </table> 

     public String doRq1001_command_deleteAction() { 
    String _LOC = "[doRq1001_command_deleteAction]"; 
    // System.out.println(_LOC + "1.0"); 

    if (_w.getListrequest() != null) { 
    for (Iterator iter = _w.getListrequest().iterator(); iter.hasNext();) { 
     W_request _wr = (W_request) iter.next(); 
     if (_wr.isSelect()) { 
      _no_selected = false; 
      if (_wr.getStatus().equals(ORDER_STATUS_PROCESSED) 
       || _wr.getStatus().equals(ORDER_STATUS_LOCKED)) { 
       _delete_locked_processed = true; 
      } else { 
       _w.deleteRequest(_wr.getRequestid()); 
      } 
     } 
    } 
    } else { 
    showCommonMessage_ByKey("rq1001_message_refresh_list"); 
    return null; 
    } 

    if (_no_selected) { 
    showCommonMessage_ByKey("rq1001_message_delete_no_select"); 
    return null; 
    } else { 
    _w.populateRequest(); 
    } 

    if (_delete_locked_processed) { 
    showCommonMessage_ByKey("rq1001_message_delete_not_open_locked"); 
    } 

    return ""; 

}

ответ

-1

Используйте Primefaces выбора (к одному и нескольким) построить в функцию вместо.

основной

http://www.primefaces.org/showcase/ui/datatableRowSelectionByColumn.jsf

одного

http://www.primefaces.org/showcase/ui/datatableRowSelectionSingle.jsf

множественным

http://www.primefaces.org/showcase/ui/datatableRowSelectionMultiple.jsf

мгновенная

http://www.primefaces.org/showcase/ui/datatableRowSelectionInstant.jsf

Радио/Флажок (я думаю, что это одно решение для вашей проблемы)

http://www.primefaces.org/showcase/ui/datatableRowSelectionRadioCheckbox.jsf

+0

же ошибка с этим методом на primefaces 4.0 ... –

Смежные вопросы