- PR -

DataGrid内のボタンを非表示にしたい

1
投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2006/05/30
投稿数: 23
投稿日時: 2006-06-14 19:14
お世話になります。

現在、ASP.netを使用してWeb系のシステムを開発しております。

DataBindして表示しているボタンを条件によって表示・非表示にしたいのですが、

どうもうまくいきません。

現在は DataGrid1_ItemCreated1 のイベントの中に

e.Item.cells(0).Enabled = false

と記述しているのですが、ボタンを押すと画面がsubmitされてしまい、
無条件に一番上のデータが空白になってしまいます。

どなたか対策方法等ご存知の方、よろしければご教授お願い致します。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-14 19:39
引用:

紅椿さんの書き込み (2006-06-14 19:14) より:

DataBindして表示しているボタンを条件によって表示・非表示にしたいのですが、
どうもうまくいきません。
現在は DataGrid1_ItemCreated1 のイベントの中に
e.Item.cells(0).Enabled = false



セルではなくボタンに対して Enabled を設定するのではないですか?
TemplateColumn を使用しているのか ButtonColumn を使用しているのかで
やり方が変わりますが ButtonColumn にしているならこんな感じかな

コード:
  If e.Item.ItemIndex < 0 Then
      Return
  End If  

  Dim btn As Button = DirectCast(e.Item.Cells(0).Controls(0), Button)
  btn.Enabled = False;

未記入
常連さん
会議室デビュー日: 2006/05/30
投稿数: 23
投稿日時: 2006-06-15 09:36
引用:


コード:
  If e.Item.ItemIndex < 0 Then
      Return
  End If  

  Dim btn As Button = DirectCast(e.Item.Cells(0).Controls(0), Button)
  btn.Enabled = False;



かるあさん ありがとうございました!

上記の方法で解決しました!

できれば後学のためにコードの解説をしていただきたいのですが・・・。

よろしいでしょうか?


かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-15 09:58
VisualStudio で開発しているなら、
実際にウォッチで調べてみるのとよく解ると思います。

あと e.Item.Cells(0) は HTML 要素の何になるのか
e.Item.Cells(0).Enabled = False としたときと
e.Item.Cells(0).Controls(0).Enabled = False としたときに
出力される HTML にどんな違いがあるかを見てください。

1

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