2015-11-05 37 views
0

我正在使用jQuery DataTables。我有一個錶行status,循環<td>#dateFormat(someprocessTable.Date_Complete, 'mm/dd/yyyy')#</td>,當這個循環它會有一個日期或爲NULL。截至目前,如果它爲NULL,則它顯示的處理;如果它有它顯示這個完成日期JS線根據字段在DataTable上更改文本

{ 
       "data": "Date_Complete", 
       "render": function(data){ 
       return ((data) ? "COMPLETED" : "PROCESSING"); 
       } 
      }, 

我需要弄清楚如何把它說,如果不是處理EXEMPT如果RMKS行是說它的免除日期爲Date_Complete。如果有Date_CompleteRmks的日期是豁免,那麼它應該仍然說完成。這將有可能在JS方面做到嗎?

HTML

<table id="processing1" class="table table-hover"> 
    <thead> 
     <th>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th> 
     <th><b>ITEM ID</b></th> 
     <th style="display:none;"><b>DEALER ID</b></th> 
     <th style="display:none;"><b>DATE RECEIVED</b></th> 
     <th style="display:none;"><b>OP ID</b></th> 
     <th><b>DUE DATE</b></th> 
     <th><b>STATUS</b></th> 
     <th style="display:none;"><b>LATE</b></th> 
     <th style="display:none;"><b>CLOSED BY</b></th> 
     <th style="display:none;"><b>RMKS</b></th> 
     <th style="display:none;"><b>PROCESSING LOCATION</b></th> 
     <th><b>QTY</b></th> 

    </thead> 
    <tbody> 
    <cfoutput query="someprocessTable">      
    <tr> 
     <td class="details-control"></td> 
     <td class="LAlign">#id#</td> 
     <td style="display:none;">#someprocessTable.name#</td> 
     <td style="display:none;">#dateFormat(someprocessTable.Date_Received, 'mm/dd/yyyy')#</td> 
     <td style="display:none;">#getop_id(op_id)#</td> 
     <td>#dateFormat(someprocessTable.Date_Due, 'mm/dd/yyyy')#</td> 
     <td>#dateFormat(someprocessTable.Date_Complete, 'mm/dd/yyyy')#</td> 
     <td style="display:none;">#Completed_Late#</td> 
     <cfif len(Closed_by)> 
     <td style="display:none;">#getClosed_by(Closed_by)#</td> 
     <cfelse> 
     <td style="display:none;">#Closed_by#</td> 
     </cfif> 
     <td style="display:none;">#Rmks#</td> 
     <td style="display:none;">#Processing_Location#</td> 
     <td class="CAlign">#Item_Count#</td> 
    </tr>      
    </cfoutput> 
    </tbody> 
</table> 

JS

function format (d) { 

    return '<div class="slider">'+ 
      'Item ID: '+d.id+'<br>'+ 
      'Dealer: '+d.dealerID+'<br>'+ 
      'Date Received: '+d.Date_Received+'<br>'+ 
      'Checked In: '+d.op_id+'<br>'+ 
      'Date Due: '+d.Date_Due+'<br>'+ 
      'Date Complete: '+ ((d.Date_Complete) ? d.Date_Complete : 'N/A')+'<br>'+ 
      'Completed Late: '+ ((d.Completed_Late) ? d.Completed_Late : 'N/A')+'<br>'+ 
      'Completed By: '+ ((d.Closed_by) ? d.Closed_by : 'N/A')+'<br>'+ 
      'Remarks: '+ ((d.Rmks) ? d.Rmks : 'N/A')+'<br>'+ 
      'Location: '+d.Processing_Location+'<br>'+ 
      'Item Count: '+d.Item_Count+'<br>'+ 
      '</div>'; 
    } 
// Setup the page once it has loaded. 

$(document).ready(function() { 
var oTable = $('#processing1').DataTable({ 

     "columns": [ 
      { 
       "class":   "details-control", 
       "orderable":  false, 
       "data":   null, 
       "defaultContent": "" 
      }, 
      { "data": "id" }, 
      { "data": "dealerID" }, 
      { "data": "Date_Received" }, 
      { "data": "op_id" }, 
      { "data": "Date_Due" }, 
      { 
       "data": "Date_Complete", 
       "render": function(data){ 
       return ((data) ? "COMPLETED" : "PROCESSING"); 
       } 
      }, 
      { "data": "Completed_Late" }, 
      { "data": "Closed_by" }, 
      { "data": "Rmks" }, 
      { "data": "Processing_Location" }, 
      { "data": "Item_Count" } 
     ], 
     "order": [[1, 'asc']], 
     "columnDefs": [ 
      { "targets": [0,2,3,4,5,6,7,8,9,10,11], "searchable": false } 
     ], 
     "sDom": '<"row view-filter"<"col-sm-12"<"pull-left"l><"pull-right"f><"clearfix">>>t<"row view-pager"<"col-sm-12"<"text-center"ip>>>', 
     select: { 
      style: 'single' 
     }, 
     scrollY:  250, 
     deferRender: true, 
     scroller:  true, 
     //scrollCollapse: true, 
     "aLengthMenu": [[25, 50, 75, -1], [25, 50, 75, "All"]], 
     "iDisplayLength": 25, 
     "oLanguage": { 
      "sLengthMenu": "_MENU_ <label for='processing_length'><strong>records per page</strong></label>", 
      "oPaginate": { 
       "sPrevious": "«", 
       "sNext": "»", 
      } 
     } 

    }); 

enter image description here

此圖片顯示備註豁免所以它應該顯示爲免檢的,而不是處理狀態,但一旦有Date_Complete中的日期應該是COMPLETED
enter image description here

的不同的可能性:
日期爲Date_CompleteRmks免除=完成
日期爲Date_CompleteRmks空=完成
Date_Complete空日期和Rmks免除= EXEMPT
Date_Complete空日期和Rmks Null = PROCESSING

+0

我真的不理解。你屏幕截圖中的哪些項目應該具有狀態「EXEMPT」而不是實際上說的內容? – Marc

回答

1

If af聯合作爲render選項的值給出,其中一個參數包含行數據。

從另一列使用下面的代碼,包括在條件數據:

"render": function(data, type, row, meta){ 
    if(data && (row['Rmks'] === 'Exempt' || !row['Rmks'])){ 
     data = "COMPLETED"; 
    } else if (!data && row['Rmks'] === 'Exempt'){ 
     data = "EXEMPT"; 
    } else if (!data && !row['Rmks']){ 
     data = "PROCESSING"; 
    } else { 
     data = ""; 
    } 

    return data; 
} 
+0

@Vicki,對不起,原來的問題並不清楚,但你有一個想法。我會更新代碼。 –

+0

感謝這個例子!當dreamweaver說「Rmks更好地用點符號表示」時,這意味着什麼?它仍然有效,無論它只是好奇他們在說什麼 – Vicki

+0

@Vicki,'row ['Rmks']'可以寫成'row.Rmks',但點綴符號不允許名稱中的某些字符。 –