我需要更改网格标题的标题,并为其添加自定义组件。我使用.properties文件来设置标题,并使用此模板代码添加自定义组件:
<table class="table table-striped" t:type="grid" t:source="data" t:rowsPerPage="50" t:pagerPosition="bottom">
<p:specialHeader>
<t:tooltip tip="tipData"></t:tooltip>
</p:specialHeader>
</table>
在浏览器中查看网格时,会显示该组件,但没有标题。
如果我在模板中设置了标题,那么它就失去了排序功能:
<p:specialHeader>Title
<t:tooltip tip="tipData"></t:tooltip>
</p:specialHeader>
如何显示标题,排序和自定义组件?
答案 0 :(得分:3)
正如我所说here,您无法将默认标题块与您自己的自定义标题块组合在一起,它可以是其中之一。
我认为你最好的选择是mixin。看看Taha的博客文章here,在那里他创建了一个适用于Label组件的HelpText mixin。他的mixin查看消息目录中的“propertyName-help”条目,并为DOM添加“title”属性。博客文章更进一步,使用ComponentClassTransformWorker2将HelpText mixin发布到每个标签(甚至是BeanEditor组件内的标签)。
你可以做同样的事情,但你可以为Grid或GridColumns创建一个mixin(网格委托给GridColumns来绘制标题)。如果您想要一些Grid mixins的示例,请查看我的tapestry-stitch演示版here和here。
因此,您将不会重复使用工具提示组件,您将复制该行为。这很可能涉及向th
DOM元素服务器端添加“data-tooltip”属性。然后,您可以在客户端上激活一些javascript,以查找具有“data-tooltip”属性的所有元素,并执行一些UI魔术。