今天我将对Tapestry5网格中的格式化数字有疑问。 由于涉及十进制标记和千位分隔符的一些规则,我需要格式化Grid组件中的几个字段。对于文本字段我正在使用为整个应用程序定义的翻译器(例如在this示例中)但我不知道如何为网格获得相同的功能(或者即使它可能完全可用)。我希望有相同的功能我的整个应用程序中所有网格都可用的机制。
当然,并非所有数字网格字段都是货币,因此应该有某种可能性来配置它们。
我知道使用网格我可以使用ValueEncoder,但我认为在这种情况下这不起作用,因为它编码显示在网格中的整个对象,而不仅仅是一些已定义的字段。
还有一件事:我知道我可以定义每个字段以从方法中获取价值并且完成所有功能,但我正在寻找更灵活的东西 - 就像前面提到的“翻译器”一样,用于文本字段。
答案 0 :(得分:2)
您可以通过定义名为xCell的块属性(其中x是列名)来覆盖默认的网格单元渲染行为。 documentation给出了自定义lastName列的呈现的示例。
<t:grid source="users" row="user">
<p:lastNameCell>
<t:pagelink page="user/view" context="user.id">${user.lastname}</t:pagelink>
</p:lastNameCell>
</t:grid>
答案 1 :(得分:2)
这可以通过几件事的组合来实现
请注意,这不仅会影响网格,还会影响所有基于bean的组件(例如BeanDisplay)。
Jumpstart示例here