- PR -

DataGridのCommandColumnについて

1
投稿者投稿内容
take
会議室デビュー日: 2003/11/20
投稿数: 3
投稿日時: 2003-11-20 22:55
はじめまして
現在DataGridを使ってDBの更新画面を作成しています
EditCommandColumnとDeleteCommandColumnを使用しているのですが、うまく動きません
EditCommandColumnの編集ボタンを押した時に、DataGrid上のDeleteCommandColumnのボタンを使用不可の状態にしたいのですが・・・

Dim cmdDelete as Button = DirectCast(e.item.Cells(2).Control(0),Button)
cmdDelete.Enable=False

で出来ると思い、やってはみたのですが無理でした・・・
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2003-11-21 05:36
カレントの編集行の削除ボタンを使用不可にしても根本的な問題は
解決しないのでは?

たとえば、別の行の編集ボタン、削除ボタンをクリックしたとき
これらの動作を無効にする処理なども必要になります。

ViewState()にカレントの処理(Add,Edit,Delete)を保存して
エラーチェックしたらどうでしょうか。
Valhalla
ベテラン
会議室デビュー日: 2002/09/03
投稿数: 53
投稿日時: 2003-11-21 15:41
根本的な問題はとりあえず置いておいて、

Dim cmdDelete as Button = DirectCast(e.item.Cells(2).Control(0),Button)
cmdDelete.Enable=False

を実行しているのは、DataBindの前ですか?
そうするとおそらくDataBindを呼び出しにより、Deleteボタンは再作成されて
元の状態に戻っていると思います(たぶん)

DataBind後にやってるとすると、そのタイミングではe.itemはすでにグリッド
には含まれていません。なので、e.item.Cells(2).Control(0)ではなくて、
DataGrid1.Items[e.Item.ItemIndex].Cells(2).Control(0)がボタンです。

[ メッセージ編集済み 編集者: Valhalla 編集日時 2003-11-21 18:06 ]
1

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