ListViewを使いこなす
とかって実はまだ全然使いこなせてないですが。テヘ
ListViewはDBGridと同じでqooxdooのテーブルを使ったコンポーネントです。
ということは、qooxdooを研究したら、いろいろ使いこなせそうな予感がして調べてみました。
しかしqooxdoo自体、まだ日本語ドキュメントが少なく涙目。
ちなみにqooxdooのテーブルはダブルクリックでセルが編集可能になる仕様なので、チェックボックスの動作がちょっとうざいです(つまり三回クリックしないとチェックボックスのオンオフができない)。
さて、以下いろいろやってみました。
PHPでは無理なので、javascriptです。
ListView(ListView1)はこんな感じに作りました。これはvcl/sampleのサンプルをみれば作成できます。

■データをセット
//Edit(edtData1とedtData2)に入力されたデータをセット
//下記の例ではチェックボックスはfalseで入れてます
var data1 = document.getElementById('edtData1').value;
var data2 = document.getElementById('edtData2').value;
var rowData = [];
rowData.push([data1,data2,false]);
ListView1.getTableModel().addRows(rowData);
■トータルの行数(RowCount)を取得してEdit1に入れる
document.getElementById('Edit1').value = ListView1.getTableModel().getRowCount();
■最初の行の一番左の値をEdit1に入れる
//セルの指定はgetValueの引数で渡します。
document.getElementById('Edit1').value = ListView1.getTableModel().getValue(0,0);
■現在フォーカスされている行の一番左のセルをEdit1に入れる
//OnSelectionChangedでやるといい感じです
//セルの指定はgetValueの一番目の引数で行います
document.getElementById('Edit1').value = ListView1.getTableModel().getValue(0, ListView1.getFocusedRow());
■現在フォーカスされている行番号を取得してEdi1に入れる
//OnSelectionChangedでやるといい感じです
document.getElementById('Edit1').value = ListView1.getFocusedRow();
■最後の行を削除
ListView1.getTableModel().removeRows(0, 1);
| 固定リンク

コメント
これは面倒ですなぁ
投稿: | 2009年4月10日 (金) 17時10分