Tapestry:Grid标头中的自定义组件和标题

时间:2013-05-23 13:37:47

标签: grid custom-component tapestry

我需要更改网格标题的标题,并为其添加自定义组件。我使用.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>

如何显示标题,排序和自定义组件?

1 个答案:

答案 0 :(得分:3)

正如我所说here,您无法将默认标题块与您自己的自定义标题块组合在一起,它可以是其中之一。

我认为你最好的选择是mixin。看看Taha的博客文章here,在那里他创建了一个适用于Label组件的HelpText mixin。他的mixin查看消息目录中的“propertyName-help”条目,并为DOM添加“title”属性。博客文章更进一步,使用ComponentClassTransformWorker2将HelpText mixin发布到每个标签(甚至是BeanEditor组件内的标签)。

你可以做同样的事情,但你可以为GridGridColumns创建一个mixin(网格委托给GridColumns来绘制标题)。如果您想要一些Grid mixins的示例,请查看我的tapestry-stitch演示版herehere

因此,您将不会重复使用工具提示组件,您将复制该行为。这很可能涉及向th DOM元素服务器端添加“data-tooltip”属性。然后,您可以在客户端上激活一些javascript,以查找具有“data-tooltip”属性的所有元素,并执行一些UI魔术。