我使用Grails UI插件1.0.2(YUI为2.6.1)在Grails 1.1项目中使用YUI DataTable。
默认情况下,DataTable显示2个分页器:一个在上面,另一个在表下面。查看YUI API文档,我可以看到我可以将一组YUI容器作为配置参数传递但是 - 这些容器的名称是什么?
我尝试使用Firebug来浏览页面的HTML。包含分页符的div的ID是:yui-dt0-paginator0(上面)和yui-dt0-paginator1(下面)。如果我使用它们为导航器配置容器,则导航器根本不会显示。这是包含Datatable元素的GSP页面的相关摘录。
<div class="body">
<h1>This is the List of Control Accounts</h1>
<g:if test="${flash.message}">
<div class="message">${flash.message}</div>
</g:if>
<div class="yui-skin-sam">
<gui:dataTable
controller="controlAccount" action="enhancedListDataTableJSON"
columnDefs="[
[key:'id', label:'ID'],
[key:'col1', label:'Col 1', sortable: true, resizeable: true],
[key:'col2', label:'Col 2', sortable: true, resizeable: true]
]"
sortedBy="col1"
rowsPerPage="20"
paginatorConfig="[
template:'{PreviousPageLink} {PageLinks} {NextPageLink} {CurrentPageReport}',
pageReportTemplate:'{totalRecords} total accounts',
alwaysVisible:true,
containers:'yui-dt0-paginator1'
]"
rowExpansion="true"
/>
</div>
</div>
任何帮助?
谢谢!
罗洛梅
答案 0 :(得分:4)
好的,我现在拥有它。如果有人碰到同样的问题,请将其发布在此处。
所以你需要做的就是用任何id创建一个'容器'(DIV会做),并将它引用到容器配置项中。例如:
<div class="body">
<h1>This is the List of Control Accounts</h1>
<g:if test="${flash.message}">
<div class="message">${flash.message}</div>
</g:if>
<div class="yui-skin-sam">
<gui:dataTable
controller="controlAccount" action="enhancedListDataTableJSON"
columnDefs="[
[key:'id', label:'ID'],
[key:'col1', label:'Col 1', sortable: true, resizeable: true],
[key:'col2', label:'Col 2', sortable: true, resizeable: true]
]"
sortedBy="col1"
rowsPerPage="20"
paginatorConfig="[
template:'{PreviousPageLink} {PageLinks} {NextPageLink} {CurrentPageReport}',
pageReportTemplate:'{totalRecords} total accounts',
alwaysVisible:true,
containers:'dt-paginator'
]"
rowExpansion="true"
/>
</div>
<div id="dt-paginator" class="yui-skin-sam yui-pg-container" style="text-align: right;">
</div>
您只需要确保与div关联的类是yui-pg-container。 作为额外的奖励,该div上的样式将使分页器与右侧对齐。
罗洛梅
答案 1 :(得分:0)
使用YUI 2.8.0(也可能是2.6),有一种更简单的方法。只需添加样式:
.yui-skin-sam .yui-dt-paginator {
text-align:right;
}
#yui-dt0-paginator1 {
display:none;
}
这样做的好处是,paginator与表右边框对齐。如果您希望在表格的底部加上分页,只需将 yui-dt0-paginator1 更改为 yui-dt0-paginator0 。
答案 2 :(得分:0)
我有几十个YUI数据表,并且不想为每个数据表写一个选择器,所以这就是我所做的。在每个数据表周围创建一个“容器”div,然后使用第一个子选择器将可见性设置为隐藏,如下所示:
.container_div .yui-dt-paginator:first-child {
visibility:hidden;
}
注意.container_div可以随心所欲地调用。
感谢Rollo和jm的灵感,这是两种想法的混搭。