将JS封装到GWT单元格表中

Wrapping JS into GWT cell table

本文关键字:单元格 GWT JS 封装      更新时间:2023-09-26

在GWTCell表中,我使用JSNI包装jquery功能(如分组)。但是它抛出JavaScriptObject异常(函数未定义)

table.setRowData(loadContactInfo());  //To Load Data
    loadGridData();    //Calling JSNI For Grouping 
     private List<ContactInfor> loadContactInfo() {
            // To load data
    List<ContactInfor> lstContact = new ArrayList<ContactInfor>();
    lstContact.add(new ContactInfor("XXX", "YYY", "t", "26", "0300",Big Street"));
            return ContactInfor;
    }
    public static native void loadGridData()/*-{
       //calling js for grouping functionality which contains table tr element
     }-*/; 

由于在此之前重绘单元格表需要几毫秒的时间,因此会调用引发JSO异常的JSNI方法。在数据加载和渲染后,是否有其他方法可以将JS封装到Cell表中?对此有什么建议吗?

上面的代码中只有很少的信息,但如果问题是由于重新绘制和jquery之间的时间问题,那么在再次更改dom之前,您可能需要使用Scheduler.get().scheduleDeferred()命令让浏览器完成它的工作。

http://www.gwtproject.org/javadoc/latest/com/google/gwt/core/client/Scheduler.html

感谢您的回复,我在加载数据后使用了"flush()"语句,请参阅下面的代码

    table.setRowData(loadContactInfo());  
    **table.flush();    //flush force to render immediately**
    loadGridData();    
     private List<ContactInfor> loadContactInfo() {
            // To load data
    List<ContactInfor> lstContact = new ArrayList<ContactInfor>();
    lstContact.add(new ContactInfor("XXX", "YYY", "t", "26", "0300",Big Street"));
            return ContactInfor;
    }
    public static native void loadGridData()/*-{
       //calling js for grouping functionality which contains table tr element
     }-*/; 

还可以使用Scheduler.get().scheduleReference()来添加延迟。