2016-02-12 203 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

感谢你。但是当我试图实现它时,似乎在别的地方出了问题。我真的不知道哪里.. –