RadPHP XEのListViewに項目を登録するときにListItemのSubItemsの数を間違えて登録すると、ListViewの選択行をPHP側で取得できなくなる。
RadPHP XEのListViewでは初期状態では表示されない”Index”という列がある。
この”Index”列には行のインデックスが登録されている。
ListViewの選択行をサーバーに送信するときは、この”Index”列の値が送られる。
RadPHP XEのListViewに項目を登録するときにListItemのSubItemsの数が列数よりも少ないと、”Index”の列を間違えてしまうようだ。
次のコードはListView1に行を追加している。
ListView1には3列あるが、このコードでは2列分の値しか設定していない。
function Button1Click($sender, $params)
{
for ($i = 0; $i < 7; $i++)
{
$this->ListView1->AddItem('foo', array('bar'));
}
}
そうすると、ListView1には次のように値が設定される。
“Index”の値が”項目3″列に入り、”Index”列は空になっている。
こうなると、ListView1の行を選択して送信しても、PHP側にはListView1の選択行の情報は送信されない。
(ListViewの選択行の”Index”列の値が送信されるが、その値は空だ。)
ListViewに項目を追加するときは、列数に気をつけよう。