Вы должны построить Cell
, который строит таблицу HTML с помощью SafeHtmlBuilder
вместо создания виджета и получая его HTML-представление (Кстати, вы не должны даже использовать toString()
, чтобы сделать это, но скорее создать, скажем, a SimplePanel
, поместите в него виджет, а затем вызовите getElement().getInnerHTML()
на родительской панели).
Есть две основные причины:
SafeHtmlBuilder
будет быстрее (это весь смысл CellTable
против прогноза Grid
или FlexTable
)
- вы нарушаете ожидание: сериализация виджета утратит обработку событий ,
Это, как говорится, то, что вы спрашиваете, действительно возможно: использовать Cell
, который использует метод appendHtmlConstant
SafeHtmlBuilder
«s. Либо сделайте один, либо, в отличие от предлагаемого Алексом варианта escape/unescape, используйте TextCell
, но постройте его с помощью настраиваемого SafeHtmlRenderer
(для простоты), который использует SafeHtmlUtils.fromTrustedString
.