DataGrid-ButtonColumnでデータのないところはボタン無にしたい

このQ&Aのポイント
  • ASP.NETでDataGridにバイドさせるデータがありますが、データのないボタンカラムを無効にすることはできるのか疑問です。
  • データのないボタンカラムを無効にする方法を探していますが、なかなか見つかりません。
  • DataGridで表示するデータにおいて、データのないボタンカラムをクリックできないようにしたいです。
回答を見る
  • ベストアンサー

DataGrid-ButtonColumnでデータのないところはボタン無にしたい

毎々、お世話になります。 ASP.NETでDataGridにバイドさせるデータが以下だとします。 "XXX","A","","XXX","" "YYY","","","YYY","B" (1レコード5カラムのデータが2レコード) これをDataGridで XXX [A] "" XXX [ ] YYY [ ] "" YYY [B] ([ ]がbuttonColumnです) で、問題なのが、データのないButtonColumもクリックできてしまうことです。 データのないカラム(セル)は、buttonを無効にすることはできないでしょうか? いろいろ書籍やネットであさってみてもわからないのもので。。。 どうか、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kurocky
  • ベストアンサー率100% (2/2)
回答No.1

こんにちは。 ItemDataBoundイベント内で、 CType(e.Item.Cells(ボタンの列番号).Controls(0), Button)の セルを取得し、EnabledかVisibleを使用するのはいかがでしょうか?

hako-gtr
質問者

お礼

ご回答、ありがとうございます。 なるほど。ItemDataBoundイベントというのがあるのですね。 大変、参考になりました。 aspx内で完結できたらよかったんですけど やはりイベント拾っての処理になりますね。 javascriptという手も考えたんですけどね。。。 (恥ずかしながらやったことがないもんで。ASPも同様ですが) また、機会がありましたら、宜しくお願い致します。

関連するQ&A

  • datagrid内にdatagridもしくはdatalistをネストしたい

    こんばんは。 現在Visual Studio .NET 2003 でASP.NET + VB.NETの ウェブフォームを作っています。 たとえばデータベースにtable1とtable2があり idをjoinさせてdatagridにバインドすると id......name.........order ------------------------------- 1.......abc...........a ------------------------------- 1.......abc...........b ------------------------------- 2.......def...........a ------------------------------- 3.......hij...........a ------------------------------- 3.......hij...........b ------------------------------- 3.......hij...........c ------------------------------- 4.......klm...........b ------------------------------- となるのですが id......name........order ------------------------------- 1.......abc...........a ..........................b ------------------------------- 2.......def...........a ------------------------------- 3.......hij...........a ..........................b ..........................c ------------------------------- 4.......klm...........b ------------------------------- このように表示させたいためdatagridを ネストさせるしかないかと思うのですが、 うまくいきません。 http://www.atmarkit.co.jp/fdotnet/dotnettips/132nesteddg/nesteddg.html このサイトを参考にしてC#のソースコードをVBに 変えてみましたがそれもうまくいきません。 どの方法が一番いいのか、datagridにdatalistを ネストさせることが出来るのかもわからず 困っています。 datagridをどうすればネストして表示できるのか、 よりいい方法があるのか、アドバイスをお願いいたします。

  • バインドするデータを切替えしたい

    VS2008 C#でASP.NETページを作っています。 1つのFormViewでバインドさせるデータを切替えしたいのですが 可能なのでしょうか? テーブルのカラム数、データ型は同じでカラム名だけが違います。 ながれとしては パラメータでselectするテーブルを切替える SqlDataSource1 = select from a ⇔ SqlDataSource1 = select from b DataBinder.Evalメソッドの第2引数をa.xxx ⇔ b.xxx変更できるのでしょうか? DataBinder.Eval(Container.DataItem, "xxx") 宜しくお願いします。

  • ASP.NET DataGrid 選択した行のカラム位置を取得したい

    毎々、お世話になります。 さて、標記の通り、DataGridの1行に複数のボタンを設置して 押された行とカラムの位置を取得したいのですが SelectedIndexChangeedイベントをひろって SelectedIndexにより行数は取れるのですが、カラム位置は どうしたら取得できるのでしょうか? いろいろ文献やらネットであさってみても見つからず こちらに投稿させて頂きました。 お手数ですが、何卒よろしくお願いいたします。

  • ボタンコントロールの改行(WindowMobile)

    VB.NET、WindowsMobile5.0の開発です。 ボタンコントロール内のテキストを改行したいのですがどうすればよいのでしょうか? フォームロードで Me.Button4.Text = "xxx" + vbCrLf + "yyy" Me.Button4.Text = "xxx" & vbCrLf & "yyy" としてみましたがxxxが上側へ張り付いてyyyは表示されません。 ボタンの範囲を広げてもyyyは表示されてませんでした。 モバイル特有の何らかの処理が必要なのでしょうか? それともそもそも方法がだめなんでしょうか? 初歩的な質問で申し訳ありませんが、ご教授お願い申し上げます。

  • データベースの移動について

    お忙しいところ申し訳ありませんが、ご教示お願い致します。 Aサーバ(xxx.xxx.xxx.xxx)のDB(A_DB)を Bサーバ(yyy.yyy.yyy.yyy)のDB(これをB_DBとしたい)に コピーをしたいと考えております。 AサーバのA_DBの情報(レコードも含む)をBサーバにB_DBとしてコピーしたいですが、よくわかりません。。。 ご存知の方いらっしゃいましたらお手数ですがご教示下さいm(_ _)m

  • ASP.NET DataGridの項目数(列数)の取得

    ASP.NETを使用しています。 DataGridにて、表示しているデータの項目数(列数)を取得したいのですが、記述がどうも分かりません。 Me.DataGrid1.Columns.Count で取れそうな気がしてやってみましたが、取得できるのは「1」という数のみで実際の数と一致しません。どなたかご教授いただけないでしょうか? 尚、 Me.DataGrid1.Items.Count にて表示されているデータの行数の取得はできます。

  • DataGridの値での場合分けの方法について

    今回初めて質問をさせていただきます。 ASP.NETとVB.NETでWebアプリケーションの開発をしているのですが、まだ始めたばかりでDataGridの使い方がよくわからなくなり、質問させていただくことにしました。 DataGridに取得したある列の値が3種類あり、DataBindした後に、この3つの値での場合分けをしたいです。 select文を使うとして、 Select Case 【DataGridのA列のDataField】 Case 0 処理1 Case 1 処理2 Case 2 処理3 End Select のようにしたいのですが、 【DataGridのA列のDataField】の部分をどのように書いたらいいのかわかりません。 ご存知の方、この初心者にご教授していただけないでしょうか。  

  • 表示されているレコードを1つ上にする

    環境:ACCESS2003&XP Pro テーブルとそのテーブルをソースにしたクエリーを元に一覧形式のフォームを作成しています。以下のようなイメージです。 品名  仕様  数量 単価 合計  A   xxx xxx xxx xxx ↑  b   yyy yyy yyy yyy ↑  C   zzz zzz zzz zzz ↑ *↑はボタン 上記の表示で↑ボタンをクリックすると 表示されたレコードがひとつ上に行く方法が わかりません。 よろしくお願いします。 例:上記で品名bの↑ボタンをクリック 品名  仕様  数量 単価 合計  b   yyy yyy yyy yyy ↑  A   xxx xxx xxx xxx ↑  C   zzz zzz zzz zzz ↑

  • SQLについての質問です

    SQLの質問です。(Oracle) 二つのテーブル T1, T2 に、それぞれ三つのカラム A, B, C があり、A, B の値が同じである行においてT1のCからT2のCへ値をコピーするSQLを教えてほしいです。 以下、そのデータ例です。 テーブル T1 A B C --------- 1 AAA 10 2 BBB 20 3 CCC 30 テーブル T2 A B C --------- 1 AAA 0 2 XXX 0 4 YYY 0 この場合、結果としてテーブル T2は1行目だけがカラム Cの値がT1からコピーされ A B C --------- 1 AAA 10 2 XXX 0 4 YYY 0 としたいです。

  • テキストをDataGridに表示

    VB.NET勉強中の初心者です。 いろいろ検索して試行錯誤したのですが、 初心者の私にはいまいちわからなかったので、 ここで質問させていただきます。 A1 B1 C1 A2 B2 C2 のように1文字ずつ改行された内容のtxtファイルがあったとして、 それをDataGridに A列 B列 C列 ----------- A1|B1|C1 ----------- A2|B2|C2 のように「A列、B列、C列」という列項目もつけて、表形式で表示するにはどのようにすればよいでしょうか? また、DataGrid上で編集してtxtに上書き保存するにはどうすればよいでしょうか? あいまいな表現かもしれませんが、わかるかたいらっしゃいましたら教えてください。

専門家に質問してみよう