2014-09-30 164 views
1

Ruby 2.0.0,Rails 4.0.3,jquery-datatables-rails 2.2.3(w/DataTables 1.10.1),jquery-rails 3.1.1,jquery- ui-rails 5.0.0,lodash-rails 2.4.1,bootstrap-sass 3.2.0.1數據錶行超出表格邊界或太窄

我無法正確地格式化Datatables。無論是列溢出表單,還是列太窄。我已經嘗試了一些修復方法。我已經設置了columnDefs和列寬。我已經在表格標題中設置了HTML寬度。我將autoWidth設置爲false和true。我已經動態設置了CSS的寬度。我已經安裝了各種推薦的CSS修改。我試過了我能找到的所有東西。令人沮喪的是,沒有任何改變。格式總是完全一樣,就像完全忽略了我所有的嘗試一樣。這些表單被配置爲響應。我也禁用了。沒有骰子。

除了格式化,表格完美的工作。他們排序。他們搜索,他們頁面。他們只是不會格式正確。再一次,我已經將這個最小化爲一種形式,並將所有無關的信息都無濟於事。

所有協助表示讚賞。

形式呈現爲: enter image description here

局部形式是:

<div class="span12"> 
    <p> 
    <table id="carstable" class="display table-striped" width="80%" 
     data-source="<%= cars_path(format: "json") %>"> 
    <thead> 
    <tr> 
     <th data-class="expand">Stock No.</th> 
     <th>Year</th> 
     <th>Make</th> 
     <th data-hide="phone">Model</th> 
     <th data-hide="phone">Color</th> 
     <th>Status</th> 
     <th data-hide="phone,tablet">Mileage</th> 
     <th data-hide="phone,tablet">MSRP</th> 
     <th data-hide="phone,tablet">Aged</th> 
    </tr> 
    </thead> 
    <tbody> 
    </tbody> 
    </table> 
</div> 

的數據表被初始化爲:

$(document).ready(function() { 
    var breakpointDefinition, tableElement; 
    var rHelperCar; 
    rHelperCar = void 0; 
    breakpointDefinition = { 
     tablet: 1300, 
     phone: 480 
    }; 
    tableElement = $("#carstable"); 
    tableElement.dataTable({ 
     responsive: false, 
     autoWidth: false, 
     pagingType: "full", 
     jQueryUI: true, 
     processing: true, 
     serverSide: true, 
     ajax: $('#carstable').data('source'), 
     preDrawCallback: function() { 
      if (!rHelperCar) { 
       rHelperCar = new ResponsiveDatatablesHelper(tableElement, breakpointDefinition); 
      } 
     }, 
     rowCallback: function (nRow) { 
      rHelperCar.createExpandIcon(nRow); 
     }, 
     drawCallback: function (oSettings) { 
      rHelperCar.respond(); 
     } 
    }); 

保存的HTML頁:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <link href="/images/favicon.ico" rel="icon" /> 
    <title>Car</title> 
    <meta name="description" content="Car"> 

    <link data-turbolinks-track="true" href="/assets/application.css?body=1" media="all" rel="stylesheet" /> 
... 
<script data-turbolinks-track="true" src="/assets/application.js?body=1"></script> 
</head> 
<body> 
<header> 
    <div class="navbar navbar-inverse navbar-fixed-top"> 
    <a class="navbar-brand" href="/"><h4>Car</h4></a> 
    <div class="container"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
     <span class="sr-only">Toggle navigation</span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     </button> 
     <a class="navbar-brand" href="/">Home</a> 
    </div> 
    <div class="collapse navbar-collapse"> 
     <ul class="nav navbar-nav"> 
      <li><a href="/logout">Logout</a></li> 
    <li><a href="/cars">Cars</a></li> 

     </ul> 
    </div> 
    </div> 
</div> 

</header> 
<main role="main"> 

    <div class="container-fluid"> 
    <div class="row"> 
     <div class="row"> 
    <div class="col-md-6"> 
    <div class="panel panel-primary"> 
    <div class="panel-heading"> 
     --- This associate is: David Hanson 
    </div> 
    <div class="panel-body"> 
     <div class="span12"> 
    <p> 
    <table id="carstable" class="display table-striped" width="80%" 
     data-source="/cars.json"> 
    <thead> 
    <tr> 
     <th data-class="expand">Stock No.</th> 
     <th>Year</th> 
     <th>Make</th> 
     <th data-hide="phone">Model</th> 
     <th data-hide="phone">Color</th> 
     <th>Status</th> 
     <th data-hide="phone,tablet">Mileage</th> 
     <th data-hide="phone,tablet">MSRP</th> 
     <th data-hide="phone,tablet">Aged</th> 
    </tr> 
    </thead> 
    <tbody> 
    </tbody> 
    </table> 
</div> 

    </div> 
    </div> 
</div> 

</div> 
    </div> 
    </div> 
</main> 
</body> 
</html> 

回答

1

一旦我真正從DataTables作者Allan的幫助下理解了這個問題,這不是一個難題。行比表格可以處理的要寬,迫使它溢出。我發現index.html.erb使用包含div元素的佈局呈現部分索引,div元素將表格寬度限制爲col-md-6。我將寬度更改爲col-md-9,解決了基本問題。

隨着瀏覽器寬度縮小和設備類型改變,行寬仍然存在問題。這似乎是breakpointDefinition的問題。似乎微調該參數應該解決問題,以便適當地隱藏列。

更新:也注意到,我顯示的部分有span12影響行長度。將表格大小和行長度兼容是非常有意義的。有趣的是,一旦你弄清楚了這一切,所有這些工作都是如此。當然,我還有更多要學習。