Twitter bootstrap GWT Bootstrap3为DataGrid创建自定义单元格

Twitter bootstrap GWT Bootstrap3为DataGrid创建自定义单元格,twitter-bootstrap,events,gwt,datagrid,custom-cell,Twitter Bootstrap,Events,Gwt,Datagrid,Custom Cell,我正在努力获得一个bootstrap3格式的自定义单元格,以便在数据网格中工作。 我无法格式化和获取事件。 在本例中,我能够在表中获得正确的“bootstrap3输入单元格”,具有良好的bootstrap3外观和感觉,但是我无法获得事件,而且cssBuilder代码也无法工作 Column<TableData, SafeHtml> col1 = new Column<TableData, SafeHtml>(new SafeHtmlCell()) {

我正在努力获得一个bootstrap3格式的自定义单元格,以便在数据网格中工作。 我无法格式化和获取事件。 在本例中,我能够在表中获得正确的“bootstrap3输入单元格”,具有良好的bootstrap3外观和感觉,但是我无法获得事件,而且cssBuilder代码也无法工作

Column<TableData, SafeHtml> col1 = new Column<TableData, SafeHtml>(new SafeHtmlCell()) {
            @Override
            public SafeHtml getValue(TableData object) {               
               SafeStylesBuilder cssBuilder = new SafeStylesBuilder();              
               SafeHtmlBuilder sb = new SafeHtmlBuilder();  
               cssBuilder.appendTrustedString("margin-top: 5px;");
               Input i1= new Input();
               
               sb.append(SafeHtmlUtils.fromTrustedString(i1.toString()));                           
               return templates.cell(cssBuilder.toSafeStyles(), sb.toSafeHtml());
            }               
        };
Column col1=新列(新的SafeHtmlCell()){
@凌驾
公共安全HTML getValue(TableData对象){
SafeStylesBuilder cssBuilder=新的SafeStylesBuilder();
SafeHtmlBuilder sb=新的SafeHtmlBuilder();
appendTrustedString(“页边距顶部:5px;”);
输入i1=新输入();
sb.append(SafeHtmlUtils.fromTrustedString(i1.toString());
返回templates.cell(cssBuilder.toSafeStyles(),sb.toSafeHtml());
}               
};

由于我尝试了这么多不同的变体(但都失败了),我迫切需要真正的应用程序代码。

最后,我使用引导网格系统来构建自定义网格

/**
 * Addiere eine Zeile zum Panel dazu
 * @param column
 */
void addToPanel(Column [] column,int iIndex) {
    Row row=new Row();          
    int iIt;
    for (iIt=0;iIt<column.length;iIt++) {
        row.add(column[iIt]);
    }
    panelbody.insert(row,iIndex);   
}
SetGet是一个仅对每个columndata元素具有一般访问权限的类

    class MInput extends Input implements SetGet{
    RowData rData;
    int iColumn;
    MInput mI;
    
    public MInput (int iColumn, RowData rData) {
        super();
        mI=this;
        this.rData=rData;
        this.iColumn=iColumn;
        this.addBlurHandler(
            new BlurHandler () {
                @Override
                public void onBlur(BlurEvent event) {
                    // TODO Auto-generated method stub
                    rData.saData[iColumn]=mI.getText();                     
                }               
        });
        this.addKeyPressHandler(new KeyPressHandler() {
            @Override
            public void onKeyPress(KeyPressEvent event) {   
                if ( event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER ) {
                    mI.setFocus(false);
                }                   
            }               
        });
    }
    
    public String get() {           
        return rData.saData[iColumn];
    }
    
    public void set(String strSet) {
        this.setText(strSet);
        rData.saData[iColumn]=strSet;
    }
}