0

質問:celltable / datagridにさらに行を追加するにはどうすればよいですか?テーブルの現在のサイズを超えて、テーブルに直接行を追加する方法が必要だと思います。

実際、上記のステートメントは、質問を効率的かつ簡潔に完了します。

冗長情報

ただし、削除トリガーを回避するために、次の情報が提供されています。これは、答えを知っていれば問題をすでに知っているため、冗長です。ただし、以下を読む必要がある場合は、回答する前に、問題を調査して理解するためにかなりの時間を費やしてください。したがって、以下の情報は、トリガーを回避するためだけのものです。

テーブルに現在N行がある場合、setRowData(newRows)は、N番目の行までのテーブルにnewRowsのみを配置します。

配置される行数がテーブルの最後の行インデックスを超えていることを検出すると、テーブル全体が新しい行に置き換えられ、古い行が削除されます。

ページの先頭に行を配置していないことが検出されると、テーブル全体が新しい行に置き換えられます。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 に答える