首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gwt数据标记引导选择单元(需要在单元格添加/呈现后执行javascript )

gwt数据标记引导选择单元(需要在单元格添加/呈现后执行javascript )
EN

Stack Overflow用户
提问于 2016-08-05 00:24:54
回答 1查看 243关注 0票数 0

我继承了一个使用GWT创建web应用程序的项目。它使用Bootstrap3的GWT包装器来完成元素的样式化。这在很大程度上运作得很好。现在,我遇到了一个路障,试图将Bootstrap3 Select添加到当前使用GWT SelectionCell的GWT DataGrid表中。问题是,SelectionCell不是“引导样式”,因此与其他web应用程序的样式不匹配。

不幸的是,我不能简单地将Select添加到GWT DataGrid中,因为Select没有实现GWT Cell接口,也没有扩展可以添加到Column中然后添加到DataGrid中的类。子类Select和实现Cell解决了这个问题。但是,我无法让Select正确地呈现,因为它要求在JavaScript附加到DOM之后执行JavaScript函数,而DOM从未被DataGrid中的Column包装过。

相反,它由SafeHtmlBuilderrender函数呈现为Cell

代码语言:javascript
运行
复制
// 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之后调用它。如果我的Select子类通过CellonBrowserEvent接受CLICK事件,并在单击单元格后调用本机函数,则正确地呈现Select

我无法理解的是,何时以编程方式调用selectpicker函数,以便在通过RPC调用添加行之后自动呈现Select。我试着注册不同的处理程序,但没有结果。将调用处理程序,并调用包装selectpicker函数的本机函数,但似乎还没有将HTML添加到表中。从浏览器的JavaScript控制台调用上面的JavaScript片段也是有效的。因此,它应该工作,找到,但我需要找到合适的地方打电话:

我正在使用的DataGrid中的处理程序:

  • addLoadingStateChangeHandler
  • addRowCountChangeHandler

在调用到DataGrid之后,我还尝试在不同的地方调用它,数据已经完成。同样,HTML似乎没有添加到select中。即。当我在调用JavaScript之后立即调用myListDataProviderObject.getList()addAll(my data)时。

EN

回答 1

Stack Overflow用户

发布于 2016-08-05 00:56:33

很可能您需要在调用本机方法之前添加一个Scheduler call,以确保浏览器在执行此调用之前完成UI的呈现(例如DataGrid)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38779349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档