- PR -

DataRow.RowStatus

1
投稿者投稿内容
indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-05-31 09:31
ASP.NETでGrid(ページングあり)にDataTableをバインドしてるんですが(他人のソース)
先頭に(複数行)選択チェックボックスがあり(=DB項目ではない)
これをバインドしているためDataRow.RowStatusは意味がなくなります。

これを回避する為
1)更新行と追加行の判断を同じDataTableを持ち差分を抽出する。。<<現行
2)DataRow.選択のプロパティをオーバーライドして
(オーバーライドできた?)にDataRow.RowStatusを元に戻す。
3)回避せずDBと付き合わせる。(INSERTorUPDATEで処理)

その他もあると思いますが。。

1)が多いんでしょうか?

それとも他の方法がよいでしょうか?

[ メッセージ編集済み 編集者: indigo-x 編集日時 2008-05-31 09:33 ]
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-06-02 11:31
DataTableはセッション等にいれて保持したりしているのでしょうか?

ASP.NETではポストバック時もページのインスタンスを作り直します。
DataTableをどういうタイミングで作ってどのように保持しているかにもよりますが、通常は初期表示/ポストバック毎にDataTableを作り直していることが多いのではないでしょうか。
この場合、毎回DataTableが作られるためRowStatusはそもそも意味を持ちません。

このような状況であれば、常にDBの状態と付き合わせる必要がでてくるかと思います。

いろいろ工夫してDataTableを保持できるようにしており、そこでRowStatusがうまく利用できるように管理されている、というのであれば別ですが。
1

スキルアップ/キャリアアップ(JOB@IT)