我正在使用jquery-datatables。我希望如果值是数字,它的对齐应该是正确的,如果它是字符串,那么应该保留对齐。是否可以使用数据表或是否有任何方法?
<% @tasks.each do |task| -%>
<tr>
<% col_order.each do |key| %>
<td>
<% value = task[key.column_name.split(" as ")[1]] || task[key.column_name.split(".")[1]] -%>
<% if key["drilldown_reportid"].present? %>
<%= link_to value, project_report_path(@current_project,key["drilldown_reportid"], :column=>"#{key.column_name}", :value=>"#{value}") %>
<% else %>
<%= value -%> </td>
<% end %>
<% end %>
</tr>
<% end -%>
答案 0 :(得分:5)
我通过更改客户端代码(不更改任何服务器端代码)解决了这个问题。
在文件 css / jquery.dataTables.css,中 我添加了一个类
.alignRight { text-align: right; }
在我处理数据的javascript文件中,我更改了“aoColumnDefs”...
///...
"aoColumnDefs" : [
//...col 1 -6
// col_07
{
"aTargets" : [ 7 ],
"fnRender" : function(oObj) {
return Math.round(oObj.aData["endingDepth"] * 100) / 100;
},
"sTitle" : "Ending Depth [m]",
"sWidth" : "5em",
"sClass" : "alignRight"
},
//... more columns
答案 1 :(得分:0)
Another solution: add the following line and no need the update the CSS
///...
"aoColumnDefs" : [
//...col 1 -6
// col_07
{
"aTargets" : [ 7 ],
"fnRender" : function(oObj) {
return Math.round(oObj.aData["endingDepth"] * 100) / 100;
},
"sTitle" : "Ending Depth [m]",
"sWidth" : "5em",
"sClass" : "right"
},
//... more columns