2016-02-12 206 views
0

我遇到了數據表的問題。 如何在初始加載頁面期間在過濾器中分配默認值。DataTables爲初始加載頁面的列設置默認值

,我發現這個鏈接http://live.datatables.net/waselab/59/edit,通過使用DataTable中的searchCols分配默認{ sSearch: 'London' }初始過濾表。 https://datatables.net/reference/option/searchCols這是我真的需要輸出,但似乎不能在我自己的例子中工作。

但是,當我嘗試在我自己的,它不會生效。有沒有其他方法呢?

這是我試過到目前爲止.. 這是我datatables.js

$('#movie_table').DataTable({ 
     searchCols: [ 
      { sSearch: 'open' }, 
      null, 
      null, 
      null,     
      null, 
      null, 
      null, 
      null, 
      null 
      ], 
     "aoColumnDefs": [ 
      { "bSortable": false, "aTargets": [ 0, 2 ] }, 
     ], 
     "order": [[ 1, "asc" ]], 
     "lengthMenu": [[10, 20, 30, 40, 50, 100], [10, 20, 30, 40, 50, 100]], 
     "iDisplayLength": 50, 
    }); 

我的HTML部分:

<div class="container-fluid"> 
     <table id="dtv_movie_table" class="table table-striped table-bordered dataTable display"> 
      <thead style=" height: 30px; background-color:#F5F5F5; font-size:14px;"> 
       <tr> 
        <th class="text-center"><?php echo Yii::t('app', 'Delivery Status'); ?></th> 
        <th class="text-center"><?php echo Yii::t('app', 'Registered Date');?></th> 
        <th class="text-center"><?php echo Yii::t('app', 'Last Modified');?></th> 
        <th class="text-center"><?php echo Yii::t('app', 'File Acquisition Date And Time');?></th> 
        <th class="text-center"><?php echo Yii::t('app', 'Title')?></th> 
        <th class="text-center"><?php echo Yii::t('app', 'Create Situation'); ?></th> 
        <th class="text-center"><?php echo Yii::t('app', 'Action'); ?></th> 
        <th class="text-center"><?php echo Yii::t('app', 'Last Modified'); ?></th> 
        <th class="text-center" style="display:none;"> </th> 
       </tr> 
      </thead> 
      <tbody style="font-size:12px; height: 30px;">    
       <?php foreach($dtvMovie as $key => $val){?> 
       <tr> 
        <td><!-- DELIVERY STATUS---> 
         <?php 
          foreach($dtvArticle as $key2 => $val2) { 
           if (($val2['grp_cd'] == 01) && $val2['cd'] == $val['article_status']) { 
            echo $val2['data1']; 
           } 
          } 
         ?> 
        </td> 
        <td><!-- REGISTERED DATE---> 
         <?php 
          $publish_date_from = mb_substr(strip_tags($val['publish_date_from']), 0, 60, 'UTF-8'); 
          echo (mb_strlen($publish_date_from) >= 60 && mb_strlen($val['publish_date_from'], 'UTF-8') > 60) ? $publish_date_from . '...' : $publish_date_from; 
         ?> 
        </td> 
        <td><!-- LAST MODIFIED---> 
         <?php 
          $cx_update_date = mb_substr(strip_tags($val['cx_update_date']), 0, 60, 'UTF-8'); 
          echo (mb_strlen($cx_update_date) >= 60 && mb_strlen($val['cx_update_date'], 'UTF-8') > 60) ? $cx_update_date . '...' : $cx_update_date; 
         ?> 
        </td> 
        <td><!-- FILE ACQUISITION DATE AND TIME---> 
         <?php 
          $import_date = mb_substr(strip_tags($val['import_date']), 0, 60, 'UTF-8'); 
          echo (mb_strlen($import_date) >= 60 && mb_strlen($val['import_date'], 'UTF-8') > 60) ? $import_date . '...' : $import_date; 
         ?> 
        </td> 
        <td><!-- TITLE---> 
         <?php 
          $title = mb_substr(strip_tags($val['title']), 0, 60, 'UTF-8'); 
          echo (mb_strlen($title) >= 60 && mb_strlen($val['title'], 'UTF-8') > 60) ? $title . '...' : $title; 
         ?> 
        </td> 
        <td><!-- ZAPPING CREATE SITUATION---> 
         <?php 
          foreach($dtvArticle as $key2 => $val2) { 
           if (($val2['grp_cd'] == 02) && $val2['cd'] == $val['zapping_status']) { 
            echo $val2['data1']; 
           } 
          } 
         ?> 
        </td> 
        <td><!-- ACTION---> 
         <a href="<?php echo Yii::$app->request->baseUrl.'/dtv/editor/edit/' . $val['article_id']; ?>" class="btn btn-edit-dtv"> 
           <?php echo Yii::t('app', 'Edit Movie'); ?> 
          </a> 
        </td> 
        <td><!-- LAST MODIFIED---> 
         <?php 
          $up_time = mb_substr(strip_tags($val['up_time']), 0, 60, 'UTF-8'); 
          echo (mb_strlen($up_time) >= 60 && mb_strlen($val['up_time'], 'UTF-8') > 60) ? $up_time . '...' : $up_time; 
         ?> 
        </td> 
        <td style="display:none;"> 
         <!--- HIDDEN DIV for CATEGORY CODE ----> 
         <?php 
          foreach($dtvArticle as $key2 => $val2) { 
           if (($val2['grp_cd'] == 04) && $val2['cd'] == $val['news_cat_cd']) { 
            echo $val2['data1']; 
           } 
          } 
         ?> 
        </td> 

       </tr> 
       <?php }?> 
      </tbody> 
     </table> 
    </div> 

這是在我的HTML渲染表

enter image description here

我做了searchCols:部分。但它不會做任何事情。請幫忙。

+0

你設置' 「服務器端」:真,'但如果是數據來自哪裏? – markpsmith

+0

我剛剛從數據庫中獲取數據。 –

+0

是的,但是如何填充數據表?我只是看不出如何在不告訴它從哪裏獲取數據的情況下初始化服務器端數據表。 – markpsmith

回答

1

您的數據表代碼沒有問題,問題在於您的表格HTML。在您發佈該鏈接之前,任何人都無法幫助您,這突出了儘可能多地提供信息的重要性。

看看你的餐桌結構 - 整個餐桌內容都在<thead>之內,根本沒有<tbody>款!我很驚訝datatables設法呈現任何東西。

請務必關閉thead部分&開始tbody部分正確:

<thead> 
    <tr> 
     <th>Name</th> 
     <th>Position</th> 
     <th>Office</th> 
     <th>Age</th> 
     <th>Start date</th> 
     <th>Salary</th> 
    </tr> 
</thead> 
<tbody> 
... 

這是我的工作版本:jsfiddle

+0

感謝你。但是當我試圖實現它時,似乎在別的地方出了問題。我真的不知道哪裏.. –