【问题标题】:Gwt flex table getRowCount() method not returning current valueGwt flex table getRowCount()方法不返回当前值
【发布时间】:2014-04-14 10:57:31
【问题描述】:

我正在使用 GWTFlexTable 并且有一个问题:我正在删除之后的任何行,当我尝试添加新行时,它给出了 rowcount 值,包括已删除的行,因此 在迭代最后一行时 IndexOutOfBoundsException

for( count=0; count < table.getRowCount(); count++ )
{

}

给出这个例外

[FATAL] Uncaught Exception:
 [java] java.lang.IndexOutOfBoundsException:
 [java] Column index: 0, Column size: 0

【问题讨论】:

  • 如何删除行?
  • 使用 flextable.removeRow(int rowIndex) 方法
  • 在 fireBug 的帮助下将删除的行显示为

标签: java gwt flextable


【解决方案1】:

请在GWT Showcase - FlexTable 上查看演示。

这是直接从展示案例中添加/删除行的代码。使用这些方法来执行这些操作。在进行任何操作之前,请务必先检查行数。

/**
 * Add a row to the flex table.
 */
private void addRow(FlexTable flexTable) {
    int numRows = flexTable.getRowCount();
    flexTable.setWidget(numRows, 0, widget1));
    flexTable.setWidget(numRows, 1, widget2));
    flexTable.getFlexCellFormatter().setRowSpan(0, 1, numRows + 1);
}

/**
 * Remove a row from the flex table.
 */
private void removeRow(FlexTable flexTable) {
    int numRows = flexTable.getRowCount();
    if (numRows > 1) {
        flexTable.removeRow(numRows - 1);
        flexTable.getFlexCellFormatter().setRowSpan(0, 1, numRows - 1);
    }
}

【讨论】:

  • 请您分享一个可测试且运行最少的代码。
  • 对不起,我无法放置需要 10 声望的图像.....当我删除最后一行时,它正在发生。我已经用萤火虫检查过它显示空标签
【解决方案2】:

如果你使用按钮删除行.. 删除特定行时编写一个点击处理程序。

 Button removeSelectedRow = new Button();
 removeSelectedRow.addClickHandler(new ClickHandler() {
  @Override
  public void onClick(ClickEvent event) {
    int rowIndex = flexTable.getCellForEvent(event).getRowIndex();
    flexTable.removeRow(rowIndex);
  }
}); 

不要使用 rowCount()。
像这样使用 getRowIndex() 位置。 这将有助于删除它可以以任何顺序或任何位置或页面中的任何位置显示的行。这是你的需要吗?

【讨论】:

  • 我正在使用 rowCount 检查 name 列下的 name 不应重复 ....在最后 Row 迭代时出现异常。
  • 这可能有效,因为 (int count=flextable.getRowCount()-1; count>=0;count--){ flextable.removeRow(i); } 这将从弹性表中删除所有行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 2023-03-09
相关资源
最近更新 更多