2012-02-09 52 views
0

当水平条出现时,表标题与数据不一致。GWT 2.4 DataGrid - 标题与数据不对齐,水平滚动条出现时

如果没有滚动,则表头正确对齐。

IE8的Windows7和WinXP的IE7

有了Chrome它的工作原理与测试GWT2.4。

是否有解决方法? 我做错了什么?

public void onModuleLoad() 
{ 
    DataGrid table = createTable(); 
    RootLayoutPanel rp = RootLayoutPanel.get(); 
    rp.add(table); 

} 


DataGrid createTable() 
{ 
    ArrayList<HashMap> list = new ArrayList<HashMap>(); 

    HashMap row = new HashMap(); 
    row.put("1", true); 
    row.put("2", "Model ABC"); 
    row.put("3", "1X1.5-6"); 
    row.put("4", "0.344"); 
    row.put("5", "IRON"); 
    row.put("6", "3,500"); 
    row.put("7", "102"); 
    row.put("8", "4.458"); 
    row.put("9", "57.5"); 
    row.put("10", "31.403"); 
    row.put("11", "5.5"); 

    list.add(row); 

    DataGrid table = new DataGrid(); 

    Column columnDef2 = new Column<HashMap, Boolean>(new CheckboxCell()) 
    { 
     @Override 
     public Boolean getValue(HashMap object) 
     { 
      return (Boolean) object.get("1"); 
     } 
    }; 
    table.addColumn(columnDef2, "1"); 
    table.setColumnWidth(columnDef2, 100, Unit.PX); 

    Column columnDef = new Column<HashMap, String>(new TextCell()) 
    { 
     @Override 
     public String getValue(HashMap object) 
     { 
      return (String) object.get("2"); 
     } 
    }; 
    table.addColumn(columnDef, "2"); 
    table.setColumnWidth(columnDef, 100, Unit.PX); 

    columnDef = new Column<HashMap, String>(new TextCell()) 
    { 
     @Override 
     public String getValue(HashMap object) 
     { 
      return (String) object.get("3"); 
     } 
    }; 
    table.addColumn(columnDef, "3"); 
    table.setColumnWidth(columnDef, 100, Unit.PX); 

    columnDef = new Column<HashMap, String>(new TextCell()) 
    { 
     @Override 
     public String getValue(HashMap object) 
     { 
      return (String) object.get("4"); 
     } 
    }; 
    table.addColumn(columnDef, "4"); 
    table.setColumnWidth(columnDef, 100, Unit.PX); 

    columnDef = new Column<HashMap, String>(new TextCell()) 
    { 
     @Override 
     public String getValue(HashMap object) 
     { 
      return (String) object.get("5"); 
     } 
    }; 
    table.addColumn(columnDef, "5"); 
    table.setColumnWidth(columnDef, 100, Unit.PX); 

    columnDef = new Column<HashMap, String>(new TextCell()) 
    { 
     @Override 
     public String getValue(HashMap object) 
     { 
      return (String) object.get("6"); 
     } 
    }; 
    table.addColumn(columnDef, "6"); 
    table.setColumnWidth(columnDef, 100, Unit.PX); 

    columnDef = new Column<HashMap, String>(new TextCell()) 
    { 
     @Override 
     public String getValue(HashMap object) 
     { 
      return (String) object.get("7"); 
     } 
    }; 
    table.addColumn(columnDef, "7"); 
    table.setColumnWidth(columnDef, 100, Unit.PX); 

    columnDef = new Column<HashMap, String>(new TextCell()) 
    { 
     @Override 
     public String getValue(HashMap object) 
     { 
      return (String) object.get("8"); 
     } 
    }; 
    table.addColumn(columnDef, "8"); 
    table.setColumnWidth(columnDef, 100, Unit.PX); 

    columnDef = new Column<HashMap, String>(new TextCell()) 
    { 
     @Override 
     public String getValue(HashMap object) 
     { 
      return (String) object.get("9"); 
     } 
    }; 
    table.addColumn(columnDef, "9"); 
    table.setColumnWidth(columnDef, 100, Unit.PX); 

    columnDef = new Column<HashMap, String>(new TextCell()) 
    { 
     @Override 
     public String getValue(HashMap object) 
     { 
      return (String) object.get("10"); 
     } 
    }; 
    table.addColumn(columnDef, "10"); 
    table.setColumnWidth(columnDef, 100, Unit.PX); 

    columnDef = new Column<HashMap, String>(new TextCell()) 
    { 
     @Override 
     public String getValue(HashMap object) 
     { 
      return (String) object.get("11"); 
     } 
    }; 
    table.addColumn(columnDef, "11"); 
    table.setColumnWidth(columnDef, 100, Unit.PX); 

    table.setRowCount(list.size(), true); 
    table.setRowData(0, list); 

    return table; 
} 

回答

0

事实证明,IE8的兼容性按钮被按下,而IE7在兼容模式下默认运行。