如何更改GWT DataGrid中列的名称?

时间:2013-07-11 00:57:49

标签: java gwt

我有一个带有静态列的GWT DataGrid。虽然我知道我可以删除列并使用不同的名称添加它们,但是可以直接更改列的名称吗?

更新

我不明白发生了什么。根据Per Thomas Boyer的回答,我在文档中看到.getHeader()作为公共方法从AbstractCellTable继承而来,但编译器说DataGrid不存在这样的方法。

创建网格:

DataGrid myGrid = new DataGrid<MyType>(Integer.MAX_VALUE, GWT.<DataGridResources2> create(DataGridResources2.class));

这无法编译:

Header<MyHeaderClass> header = myGrid.getHeader(0);

编译器说类型DataGrid没有这样的方法。

2 个答案:

答案 0 :(得分:0)

您可以使用DataGrid的getHeader方法获取列标题,然后

getCell().setValue

答案 1 :(得分:0)

似乎建议的答案是行不通的,因为setValue方法不只是采用String或SafeHtml - 你需要像Context这样的东西。

这是一种方法:

public class HeaderHtml implements SafeHtml {
   /**
    * the header's HTML string
    */
   private String html = "";

   /**
    * Sets the HTML after escaping tags.
    * Could change to:
    *    this.html = html == null ? "" : html;
    * if desired.
    */
   public void setHtml(String html) {
      this.html = html == null ? "" : SafeHtmlUtils.htmlEscapeAllowEntities(html);
   }

   /**
    * Required method to deliver the HTML string
    * @return the HTML string
    */
   @Override
   public String asString() {
      return html;
   }
}

创建一个用作SafeHtml标头的实例。然后你可以随时推送一个新的字符串。