【问题标题】:GWT CellTable - set column widthGWT CellTable - 设置列宽
【发布时间】:2011-05-26 14:15:28
【问题描述】:

是否可以在GWT中设置CellTable的列宽?

【问题讨论】:

    标签: gwt width cell


    【解决方案1】:

    编辑:从 GWT 2.2 开始支持 table.setWidth 和 table.setColumnWidth

    table.setWidth("100%", true);
    table.setColumnWidth(nameColumn, 35.0, Unit.PCT);
    table.setColumnWidth(addressColumn, 65.0, Unit.PCT);
    

    我能够使用一种以编程方式设置宽度的方法来扩展 CellTable。这有点像 hack,因为应该执行此操作的所有真实方法都是 CellTable 私有的,而且 GWT 似乎应该直接提供此方法,但它似乎有效。

    public void setColumnWidths(List<Integer> widths)
    {
        TableElement tel = TableElement.as(getElement());
        NodeList<Element> colgroups = tel.getElementsByTagName("colgroup");
        if (colgroups.getLength() == 1)
        {
           TableColElement cge = TableColElement.as(colgroups.getItem(0));
           NodeList<Element> cols = cge.getElementsByTagName("col");
           for (int j = 0; j < widths.size(); j++)
           {
               TableColElement column = null;
               if (cols.getLength() > j)
               {
                   column = TableColElement.as(cols.getItem(j));
               }
               else
               {
                   column = cge.appendChild(Document.get().createColElement());
               }
    
               column.setWidth(widths.get(j)+"px");
    
           }
    
        }
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用addColumnStyleName(int index, java.lang.String styleName) 方法为特定列使用样式名。

      Javadoc for CellTable

      【讨论】:

      • 我知道这种方法,但不知道如何使用它。应该在哪里声明这样的样式类?
      • 在应用程序的样式表中。查看ClientBundle 或仅包含自定义样式表。
      • 谢谢,它有效。我想在 CellTable.Resource 中声明此样式表,但出现异常:[错误] 无法处理 CSS。你知道怎么做吗?
      • 对不起,我自己还没有这样做,而且你关于错误的信息有点太模糊了。
      【解决方案3】:

      对我有用的是在我的 CSS 中添加一个新类。此类仅适用于长度因数据而异的选择元素。

      .__gwt_cell select{
          width:170px;
      }
      

      然后将其应用于我的特定单元格样式,例如 o:

      table.getColumn(3).setCellStyleNames("yourstyle");
      

      【讨论】:

        【解决方案4】:

        CellTable 的 GWT 文档涵盖了这一点,请参阅: http://www.gwtproject.org/doc/latest/DevGuideUiCellTable.html

        在“控制列宽”下。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多