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正确格式化。列超出表单,或列太窄。我为此试过了一些myriead修复程序。我已设置columnDefs和列宽。我在表格标题中设置了HTML宽度。我设置了autoWidth false和true。我已动态设置CSS宽度。我已经安装了各种推荐的CSS修改。我试过我能找到的一切。令人沮丧的是,没有任何改变。格式总是完全一样,就像它完全忽略了我的所有尝试。这些表单配置为响应。我也禁用了那个。没有骰子。
除格式化外,表格完美无缺。他们排序。他们搜索,他们页面。他们只是正确地格式化了。再一次,我已将此最小化为一种形式,并将所有无关的信息都无效。
感谢所有的帮助。
表单呈现为:
部分表格是:
<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>
答案 0 :(得分:1)
一旦我在DataTables作者Allan的帮助下真正理解了这个问题,这并不是一个难以解决的问题。这些行只是比表所能处理的宽,强迫它溢出。我发现index.html.erb使用包含div元素的布局呈现索引部分,该div元素将表格宽度限制为col-md-6。我将宽度更改为col-md-9,这解决了基本问题。
随着浏览器宽度缩小和设备类型发生变化,行宽继续存在问题。这似乎是breakpointDefinition的一个问题。似乎微调该参数应解决问题,以便适当地隐藏列。
更新:还注意到我显示的部分有span12影响行长度。使表大小和行长度兼容当然是有意义的。有趣的是,一旦你解决了一些问题,这一切都很有效。当然,我还有很多东西需要学习。