• ベストアンサー

VB.NETで、DataGridのヘッダーカラムに入れ込んだボタンコントロールをプログラム上で、取得する方法

http://www.atmarkit.co.jp/fdotnet/aspexp/aspexp07/aspexp07_04.html このページのように、DataGrid内のあるカラムのヘッダーにボタンを入れました。 これをプログラム上で、このコントロールに対して、 表示名を変えたいです。 どうやってコントロールを引っ張ってくればよいのでしょうか?

  • Haule
  • お礼率52% (125/240)

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

  • ベストアンサー
回答No.2

お世話になります。 なるほど。そういう事ですか。 ItemDataBound で FindControl してやれば よろしいかと。 Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, _                   ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) _                   Handles DataGrid2.ItemDataBound   If e.Item.ItemType = ListItemType.Header Then     Dim btn As Button = CType(e.Item.FindControl("btnSubmit"), Button)     btn.Text = "Test"   End If End Sub

Haule
質問者

お礼

ありがとうございます! できました~♪

その他の回答 (1)

回答No.1

お世話になります。 > このページのように、DataGrid内のあるカラムのヘッダーにボタンを入れました。 すみません。各行にボタンを挿入する方法については 記述してありましたが、 ヘッダにボタンを配置する手法については 記述していなかったように見えるのですが...。 > どうやってコントロールを引っ張ってくればよいのでしょうか? すみません、これはどういう事がなさりたいのかが 私には解りませんでした。

Haule
質問者

補足

レスありがとうございます。 具体的な説明をします! (1)リンク先の『選択した商品の写真を表示させるための設定:手順1』を行う。 (2)『選択した商品の写真を表示させるための設定:手順2』の部分で、『HeaderTemplate』の部分にButtonコントロールを入れました。IDを『btnSubmit』にします。 (3)ソース内の処理によってこのButtonコントロールの表示「btnSubmit.text」を変更したいけれども、btnSubmitが宣言されていませんといったエラーがでます。 DataGridの中に定義している為、『DataGridCtrl.Columns(0).Header.btnSubmit』みたいな感じでコントロールを指定できるのかと考えたのですが、探しても見つかりません。 どこにこのコントロールがあるのでしょうか? よろしくおねがいします。

関連するQ&A

  • VB6 DataGrid コントロールについて

    お世話になっております。 VB6でDataGridコントロールについてどなたか教えてください! いろいろ調べたのですが、昔のコントロールのせいかあまり資料がありませんでした。 DataGridをフォームに貼り付けました。 ExcelのB1セルをDataGridに表示したいのですが、わかりません。 VBのTextBoxに表示はできます。DataGridが全くわかりません。 どうか、ご教示お願い致します!

  • ASP.NET(C#) DataGridのヘッダー行、フッダー行の取得方法(通常のロジックの位置から)

    ASP.NET(C#) DataGridのヘッダー行、フッダー行の取得方法(通常のロジックの位置から) ASP.NET(C#) DataGridのヘッダー行、フッダー行の取得を通常のロジックの位置(ItemDataBoudやItemCommand以外の位置) からアクセスする方法をご存知の方がいましたら、 教えてください。 1)DataGridのフッダー行や、ヘッダー行にある コントロールにアクセスしたい。 2)ヘッダー・フッダー以外の行の コントロールについては、 データグリッドのitems[index].FindControl(  にてアクセスすることに成功した。 http://www.atmarkit.co.jp/fdotnet/dotnettips/064dgcell/dgcell.html 3)わけがあって、ItemDataBoudやItemCommand 以外のフォームのロードとか、データグリッドとは 関係のないボタンのイベントハンドラのなか から、データグリッドのヘッダーや、フッダーの 中にあるコントロールを取得したいが ItemDataBoudやItemCommandの e.Itemとかでアクセスするような方法ばかり が、Webでヒットしてくる。 フッダー行とかにあるコントロールの状態を みて、特にデータグリッド上でバインドしなおす ようなことが無いようなポストバックのタイミング でデータグリッドの中ではないの場所の 画面上のコントロールの挙動が変わるような プログラムをする必要があってこの質問をしました。 ItemDataBoud、やデータグリッドのイベント 以外の場所で、ヘッダー行、フッダー行 そのもののオブジェクトがとれれば、 FindControl(とかで拾えそうな気がしますが。 そのやり方をご存知の方お願いします。

  • VB6のDataGridコントロールが良く分かりません。

    初めて質問させて頂きます。 検索エンジンやMSDN等を何時間も見ても分からないことがあります。 開発環境はVB6.0で、 ファイルから読み込んだり(今回はcsv)やサブウィンドウから入力した値を メインウィンドウのリストボックスに表示させて保存する等の簡単なプログラムを 作ってと会社の先輩から課題を出され、作りました。 次に、リストボックスの部分をDataGridコントロールに置き換えてと指示されましたが、 色々と調べても一向に進みません。 リストボックスの時は、1行2列といった配置だったので 今回もそれにしようとしましたが、1行から複数行にするやり方が分かりません。 また、DataGridのセルに値を入れる方法も分かりません。 VB.NET(あってますか?)でのやり方はネット上に散見していましたが、 VB6.0では皆無でした。 したいことは以下の2点です。 ・1行複数列を複数行2列にしたい。絵で書くとこんな具合です。 |COL1|COL2|COL3|COL4|COL5|COL6|を |COL1|COL2| |COL3|COL4| |COL5|COL6| ※COLは、Columnの略です。 ・セルに値を入れる(代入ともいう?)。 本当に色々と調べたのですが、目ぼしきものが見当たらず VBを始めたばかりでして不明なことも多く見逃していることもあるかもしれません。

  • vb2003 datagridにコントロールを追加するには

    vb2003でdatagridにチェックボックス、リストボックス、 テキストボックスを追加したいです。 datasetを作成し、ヘッダ、列、行の追加まではできましたが、 そこへ各列にコントロールの追加をしたいです。 チェックボックスはdatasetでboolean型にすると 自動でチェックボックスになると聞いたのですが、なりません。 コントロールの追加の仕方を教えてください。

  • VB.net webアプリケーションでのDataGridコントロールの使い方

    VB.net2003 os WinXP Pro webアプリケーションでのDataGridコントロールの使い方ですが。 グリッドの左のほうに「編集」や「削除」のボタンを出すことができたのですが、「編集」や「削除」のボタンを押したときのイベントを拾うことができません。なぜでしょうか?DataGrid1_EditCommand()イベントなど通りません。 あと、イベントが拾えたとして、押した行の位置とかを調べることができるのでしょうか?

  • VB.NETで、プログラム上から新しいウィンドウを開くをする方法

    HyperLinkコントロールを使って NvigationURL=移動先URL target=blank で、新しいウィンドウでページを表示はできるのですが、 プログラム上で、これと同じことをしたいんです。 どのような命令文でやればよいのでしょうか? ボタンを押したときに、プログラムを走らせてから最後にジャンプしたいんです。

  • DataGridのカラムを隠す方法について

    DataGridにて、任意のカラムのみをデータはセットしますが、画面上では、見えない様する為に、カラムの幅を「0」に設定したみたのですが、どうしても見えてしまうのですが、どうすればよいのか教えて下さい。 宜しくお願いします。 (下記のソースを記載しました) 環境 Flash8 Professional WinXP //外部クラスのインポート import mx.controls.*; import mx.core.UIComponent; import it.sephiroth.Serializer //CF:仮データ var Name:String = 'テスト'; var Name_No:String = '1234567'; //DataGridにデータを反映 var OldDG_arry:Array = new Array(); OldDG_arry.addItem( { syainName:Name,C_name:true ,nameCode:Name_No} ); OldDG_arry.addItem( { syainName:Name,C_name:false,nameCode:Name_No} ); OldDG_dg.dataProvider = OldDG_arry; //呼出:関数 OldDG_setgrid(); //DataGiridの設定関数 function OldDG_setgrid(){ //ヘッダーの高さ OldDG_dg.headerHeight = 40; //氏名 OldDG_dg.getColumnAt(0).__header = "氏名"; OldDG_dg.getColumnAt(0).width = 70; //チェックボックス OldDG_dg.getColumnAt(1).__header = "チェック"; OldDG_dg.getColumnAt(1).cellRenderer = "CheckBoxCell"; OldDG_dg.getColumnAt(1).width = 130; //氏名コード OldDG_dg.getColumnAt(2).__header = "コード"; OldDG_dg.getColumnAt(2).width = 0; }

    • ベストアンサー
    • Flash
  • ASP.NET DataGrid 選択した行のカラム位置を取得したい

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

  • ASP.NET/VBでのユーザコントロールを使用したプログラム

    開発環境:VS2005 言語:ASP.NET(VB) 質問させてください。 現在ASP.NETでプログラムを作っています。 プログラム等は経験なくほぼ初心者です。 内容としては テキストボックス(txtB)1個のユーザコントロールを ボタン(btn1)1個とテキストボックス(txtA)1個のフォーム(aspx)に貼り付け、 ボタンを押下することでフォームのテキストボックス内の値を ユーザコントロールのテキストボックスに表示させるという プログラムを作りたいのですがうまくいきません。 色々調べたのですが、 ユーザコントロールのテキスト内の値をフォームのテキストに表示させる方法は あったのですが逆の方法は見つけられませんでした。 説明等わかりにくいところもあるかもしれませんが 回答よろしくお願いいたします。

  • VB.NET(ASP.NET)でページAからページBに新しいWindowで飛んだ後ページBにページAのDataGrid情報をもっていく方法

    VB.NET(ASP.NET)のWebアプリケーションを VB.NET2003で開発しているのですが ページAに表示しているDataGridを新しいWindowで表示したページBのDataGridに表示させたいんです。 Session情報に入れようと思いましたが入らない・・ どうしたらよいでしょうか?

専門家に質問してみよう