我继承了一个使用 GWT 创建 Web 应用程序的项目。它使用 Bootstrap3 的 GWT 包装器来进行元素的样式设置。这在大多数情况下运行良好。现在我遇到了一个障碍,试图将 Bootstrap3 添加到当前使用 GWTSelect
的 GWT表中。问题是 a不是“引导样式”,因此与 Web 应用程序其余部分的样式不匹配。DataGrid
SelectionCell
SelectionCell
Select
不幸DataGrid
的是,我不能简单Select
地Cell
将. 子类化和实现解决了这个问题。但是,我无法正确呈现 ,因为它需要在 附加到 DOM 后执行 JavaScript 函数,而 DOM 从未被 a 包裹在 a 中。Column
DataGrid
Select
Cell
Select
Select
Column
DataGrid
相反,它是SafeHtmlBuilder
由 的render
函数渲染成的Cell
。
// GWTBootstrap3::Select function to render the Select
public void render() {
if (isAttached())
command(getElement(), SelectCommand.RENDER);
}
protected native void command(Element e, String command) /*-{
$wnd.jQuery(e).selectpicker(command);
}-*/;
由于Select
从未附加到 DOM,因此我需要selectpicker
手动调用该函数。对于他,我创建了自己的本机函数,我需要在SafeHtmlBuilder
添加到DataGrid
. 如果我的子类通过'sSelect
接受CLICK
事件并在单击单元格后调用本机函数会正确呈现。Cell
onBrowserEvent
Select
我无法弄清楚何时以selectpicker
编程方式调用函数以Select
在 RPC 调用添加一行后自动呈现。我试图注册不同的处理程序无济于事。处理程序被调用,并且包装该selectpicker
函数的本机函数也被调用,但似乎 HTMLselect
尚未添加到表中。调用从浏览器的 JavaScript 控制台截取的上述 JavaScript 也可以。所以它应该可以找到但我需要找到合适的地方打电话:(
DataGrid
我正在使用的处理程序:
- addLoadingStateChangeHandler
- addRowCountChangeHandler
DataGrid
在调用添加到数据之后,我还尝试在不同的地方调用它。同样,HTMLselect
似乎没有添加到table
. IE。当我在调用myListDataProviderObject.getList()addAll(my data)
.