2011-07-27 41 views
1

我正在使用jquery.dataTables (1.8.1)來顯示數據列表,並將其顯示到3x3網格中。我不想使用標題,因爲它不是必需的。jQuery dataTables 3x3列沒有標題

這裏是我的javascript:

$('table.grid_view').dataTable({ 
    "oLanguage": { 
     "sSearch": "<p style='margin:5px 0;'>Search:</p>" 
    }, 
    "bLengthChange": false, 
    "bFilter": true, 
    "bSort": false, 
    "bAutoWidth": false, 
    "iDisplayLength": 3, 
    "sPaginationType": "full_numbers", 
    "aoColumns": [null,null,null] 
}); 

和這裏的桌子:

<div id='grid_wrap'> 
    <table class="grid_view"> 
     <tbody> 
     <?php 
     if (!empty($grid_datas)){ 
      $i = 1; 
      $index = 0; 
      foreach ($grid_datas as $grid_data){ 
       $index++; 
       if($i == 0){ echo '<tr>';} 
       if($index == count($grid_datas)){$colspan = $index % 3;} 
       else{$colspan = 1;} 
      ?> 
       <td> 
        <?php echo $grid_data['the_data'];?> 
       </td> 
      <?php 
       if($index == count($grid_datas) || $index % 3 == 0){ 
        echo '</tr>'; 
        $i = 0; 
       }else{$i++;} 
      }?> 
     </tbody> 
     <?php }else{?> 
     <tr> 
      <td>No data Found</td> 
     </tr> 
     <?php }?> 
    </table> 
</div> 

其實這幾乎工作,但數據表上提醒消息

數據表警告:要求不明參數'2'來自數據 行3的來源

,當我在Firebug檢查它,這裏是發生了什麼:

數據表警告:TD元素的意外數字。預期12和 得到11.數據表不支持表 正文中的rowspan/colspan,並且每個行/列組合必須有一個單元格。

從它的聲音,看來我只有11 $grid_datadataTables期待12日以來該表產生4行顯示,因爲我沒有發起任何header(thead),似乎dataTable是動態生成的:

<thead> 
    <tr> 
     <th class="sorting_disabled" rowspan="1" colspan="1"></th> 
     <th class="sorting_disabled" rowspan="1" colspan="1"></th> 
     <th class="sorting_disabled" rowspan="1" colspan="1"></th> 
    </tr> 
</thead> 

我已經花了一些時間修改表和JavaScript,以便它不會給任何警告,我也搜索任何可能的解決方案,但沒有人似乎工作,請幫幫我

+0

像我know..dataTable沒有'thead'節不工作... – Vivek

+0

你可以做的是...寫THEAD一部分,但使用戶隱身...通過隱藏標題 – Vivek

+0

您的表格結構中還有一件事是錯誤的..那就是您在''之後有一個tr ..這也會導致dataTable驗證失敗 – Vivek

回答

0

讓您在側tbody

<div id='grid_wrap'> 
    <table class="grid_view"> 
     <tbody> 
     <?php 
     if (!empty($grid_datas)){ 
      $i = 1; 
      $index = 0; 
      foreach ($grid_datas as $grid_data){ 
       $index++; 
       if($i == 0){ echo '<tr>';} 
       if($index == count($grid_datas)){$colspan = $index % 3;} 
       else{$colspan = 1;} 
      ?> 
       <td> 
        <?php echo $grid_data['the_data'];?> 
       </td> 
      <?php 
       if($index == count($grid_datas) || $index % 3 == 0){ 
        echo '</tr>'; 
        $i = 0; 
       }else{$i++;} 
      }?> 

     <?php }else{?> 
     <tr> 
      <td>No data Found</td> 
     </tr> 
     <?php }?> 
     </tbody> 
    </table> 
</div> 
+0

我試過這個,但警報仍然存在彈出,我也試圖添加一個thead節,仍然存在問題。任何其他建議?謝謝 – littlechad

+0

如果不是這種情況,那麼你在表中缺少一個td ...你能發佈最終呈現的html..only表部分.. – Vivek

+0

或更好,如果你在Datatable論壇-http:// datatables上發佈這個問題.net/forums/ – Vivek

0

所有tr使每塊的股利和放置3塊,每行一個單一的TD和隱藏,像這樣的CSS頭。對於數據表初始化

<table id="display_table"> 
<thead> 
<th>Anything</th> 
</thead> 
<tbody> 
<tr> 
<td><div class="block">Contents</div> 
    <div class="block">Contents</div> 
    <div class="block">Contents</div> 
</td> 
</tr> 
<tr> 
<td><div class="block">Contents</div> 
    <div class="block">Contents</div> 
    <div class="block">Contents</div> 
</td> 
</tr> 
<tr> 
<td><div class="block">Contents</div> 
    <div class="block">Contents</div> 
    <div class="block">Contents</div> 
</td> 
</tr> 
</tbody> 
</table> 

<style> 
.dataTables_wrapper table thead{ 
    display:none;} 
</style> 

而且現在代碼