0

问题:如何将更多行附加到单元格表/数据网格?我认为必须有一种方法可以将超出当前表大小的行直接附加到表中。

实际上,上面的陈述充分而简洁地完成了这个问题。

冗余信息

但是,为了避免删除触发器快乐,提供了以下信息,这是多余的,因为如果您知道答案,您就会知道问题所在。但是,如果您需要阅读以下内容,我希望您在回答之前投入大量时间来调查和理解问题。因此,以下信息仅用于避免触发快乐。

如果表当前有 N 行,则 setRowData(newRows) 只会将 newRows 放入表中,直到第 N 行。

如果它检测到要放置的行数超过了表的最后一行索引,它将用新行替换整个表,并删除旧行。

如果它检测到您没有将行放在页面的开头,它将用新行替换整个表。为了避免你有 setPageStart(getRowCount())。

我尝试了以下方法,它只是用新行替换表,丢弃旧行。

public void appendRecords(T list)
{
  int n = getRowCount();
  setRowCount(n + list.size());
  setPageStart(n);
  setRowData(n, list);
}

我唯一的办法是让数据提供者记住列表,并且对列表的任何更改都将通过数据提供者,其中数据提供者将在每次发生更改时替换表的列表。

4

1 回答 1

1

setRowData(list)是完全等价的setRowCount(list.size()); setRowData(0, list);setRowCount这里的调用是在需要时缩小表,因为setRowData总是会扩展它以便数据适合)。

如果要追加一些行,则setRowData在最后一个索引 ( getRowCount) 处的新行列表。

于 2011-12-30T18:50:39.967 回答