You should build a Cell
that constructs the HTML table using the SafeHtmlBuilder
rather than building a widget and getting its HTML representation (BTW, you shouldn't even use toString()
to do that, but rather create, say, a SimplePanel
, put the widget in it and then call getElement().getInnerHTML()
on the parent panel).
There are two main reasons:
SafeHtmlBuilder
will be faster (that's the whole point of CellTable
vs. Grid
or FlexTable
)
- you're breaking expectations: serializing a widget will lose all event handling.
That being said, what you're asking is indeed possible: use a Cell
that uses the SafeHtmlBuilder
's appendHtmlConstant
method. Either make one, or, unlike the escape/unescape roundtrip suggested by Alex, use a TextCell
but construct it with a custom SafeHtmlRenderer
(extend AbstractSafehtmlRenderer
for simplicity) that uses SafeHtmlUtils.fromTrustedString
.