题:
如何将更多行追加到celltable / datagrid?
我认为必须有一种方法可以将超出表当前大小的行直接附加到表中。

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

冗余信息

但是,为了使删除触发器满意,提供了以下信息,这是多余的,因为如果您知道答案,那么您将已经知道问题所在。但是,如果您需要阅读以下内容,我希望您在回答之前花费大量时间来调查和理解问题。因此,以下信息仅用于避免触发触发器。

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

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

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

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

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


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

最佳答案

setRowData(list)setRowCount(list.size()); setRowData(0, list);完全等效(此处的setRowCount调用是在需要时缩小表,因为setRowData始终会对其进行扩展以使数据适合其中)。

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

07-27 23:21