【问题标题】:How to set Widget as Anchor content in GWT instead of the usual String?如何在 GWT 中将 Widget 设置为 Anchor 内容而不是通常的 String?
【发布时间】:2013-03-18 22:43:01
【问题描述】:

我的情况是,我希望整个小部件成为另一个页面的链接。 AnchorHyperlink 都只接受字符串或 SafeHTML 作为视觉表示。但是,我需要例如<div>...</div> 作为链接。

这类似于:

<a href="somesite"><div><p>This whole thing is a link</p></div></a>

有没有办法做到这一点,而无需自定义编码我自己的 SafeHTML?更具体地说,我希望 GXT HBoxLayoutContainer 可以点击和收藏。

【问题讨论】:

  • 你的意思是你需要一个我可以点击的面板?当然链接会在面板里面。

标签: gwt hyperlink widget anchor gxt


【解决方案1】:

最简单的解决方案是使用 UiBinder:

<ui:UiBinder
  xmlns:ui="urn:ui:com.google.gwt.uibinder"
  xmlns:container="urn:import:com.sencha.gxt.widget.core.client.container">

 ...
 <g:HTMLPanel>
     <a href="somesite">
       <container:HBoxLayoutContainer>...</container:HBoxLayoutContainer>
     </a>
 </g:HTMLPanel>

【讨论】:

  • 不幸的是,我通过循环遍历列表在我的 .java 文件中动态填充 HBoxLayoutContainer 以及它周围的面板/容器。所以我无法选择您上面提到的声明性路径。 :-(
  • 这应该不是问题。使用“@UiField”将您的面板与 Java 代码连接起来,也可以使用“@UiField(provided=true)”。除了在 ui.xml 文件中使用&lt;container:HBoxLayoutContainer&gt;,您还可以将其声明为&lt;g:Widget&gt;,然后从外部设置您想要的任何内容。
  • HTMLPanel 等不会接受自定义小部件作为他们的孩子,虽然。我收到以下错误:在 HTML 上下文中不允许: 我有它这样声明:&lt;ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui"&gt; &lt;g:Anchor ui:field="link"&gt; &lt;g:Widget ui:field="linkedWidget"/&gt; &lt;/g:Anchor&gt; &lt;/ui:UiBinder&gt;
  • 问题不在于 HTMLPanel。但是你不能在这里使用&lt;g:Anchor&gt;。请改用&lt;a ui:field="link"&gt;(并将其连接到您班级中的 AnchorElement 字段)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多