- - PR -
変更したSQL文で,DataGridの特定の列を表示/非表示に切り替えたい(できた)
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-10-23 17:41
zen73です。
データを印刷したいと思っています。印刷したくない列の幅を0にすれば,その列は見えくなり,そのDataDridを印刷すれば,思い通りのプリントができます。 しかし,データをExcelに渡して印刷することもしたいので,特定の列の表示/非表示 をChekBoxによって切り替えたいのですが,うまくいきません。 初めから表示したくない列を選択しなければいいのですが,アプリを使用する人の意志に任せたいと思い,下のようなコードを書いてみました。チェックボックスはすべて,あらかじめチェックしておきました。 ぜんぜんうまくはいきませんでした。 [フリガナ]のチェックをはずすと,表示されていたフリガナがすべて,Nullに変わり,その後, [フリガナ]をチェックすると,もとのフリガナが表示されます。 質問1 特定の列の表示/非表示はどのようなコードで実現できるのでしょうか? 質問2 5つのCheckBoxの対応を並べてかいていますが,CheckBoxが10個あっても 同じようなことをするのでしょうか。(VBは配列が使えて便利!) よろしくお願いします。
[ メッセージ編集済み 編集者: ZEN73 編集日時 2004-10-23 17:56 ] [ メッセージ編集済み 編集者: ZEN73 編集日時 2004-10-27 18:20 ] | ||||||||||||
|
投稿日時: 2004-10-23 17:55
質問1の回答:
[DataGrid].Columns(index).Visible = {true|false} 質問2の回答: CheckBoxListを利用すると良いかも。 | ||||||||||||
|
投稿日時: 2004-10-23 19:35
質問1の回答が,私には理解できません。.Columnsの[DataGrid]は何なのか?! ○dataGrid1ではないし,○DataSet1 ds = new DataSet1()のdsからもVisibleは出てこないし, 差し支えありませんでしたら,もう少し詳しくお教え願えませんでしょうか。 | ||||||||||||
|
投稿日時: 2004-10-23 23:50
言葉足らずでしたか?
[DataGrid]は System.Web.UI.WebControls.DataGrid型の変数を便宜的にそう表現しました。 ちなみに、ColumnsはMSDNで上記の型の欄を見ると説明が載っているはずです。 | ||||||||||||
|
投稿日時: 2004-10-24 12:57
読んでみましたが,ASP.NETが中心の内容で60をすでに越えている私の頭では,理解不可能です。それに.Visible={TRUE|FALSE}を,TextBoxなどと同様に単に見えなくするだけで削除はしないじゃないか?というのは私の読み間違えなのでしょうか。
せっかく教えていただいたのにどうもすみません。 私のしたいことは,CheckBoxのオフ/オンで,削除したり/元に戻したりを実現させたいのです。 15年ほど前に,CBuilder(C#Builderではない)でSQL文の再読み込みをしていろいろやっていたものですから,VS.NETでの<列削除><削除列の戻し>をする「SQL文」とその「SQL文の再読み込みの方法」を知りたいのです。むろん,他の方法でもかまいません。 よろしくお願いします。 [ メッセージ編集済み 編集者: ZEN73 編集日時 2004-10-24 13:09 ] | ||||||||||||
|
投稿日時: 2004-10-24 13:36
と仰っていたので、表示・非表示ができるコードを示しました。 また、環境が書かれていなかったので、とりあえずWebFormsを例に挙げました。 つまり・・・
というのは、読み間違えではありません。 そういう意図で返答しました。 で、実際には何を知りたいのですか? DataGridの事を聞きたいのですか? SQL文の事を聞きたいのですか? あなたの環境は? WebForms?WindowsForms? ちなみに、WindowsFormsの場合だと、うちでは、取得した項目だけが表示されるようになります。 取得するたびにデータグリッドのDataSourceにDataTableを代入するようにしています。 ちなみに、SQL_String()というメソッドに不具合があるようですよ。 CheckBox1がチェックされていないと、実行できないSQL文になります。 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-10-24 13:39 ] [ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-10-24 13:42 ] [ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-10-24 13:50 ] | ||||||||||||
|
投稿日時: 2004-10-24 15:36
NAL-6295さん,貴重な時間を割いていただきありがとうございます。
これは,<削除・復活>と書くべきでした。
WindowsFormsです。 お聞きしたいのは,≪新たなSQL文でDataGridにデータを再セットする方法≫です。 間違いがありましたけど,必要なSQL文はこの1つでいいと思ってます。
「住所録」は,質問のために例示したものです。実際には列の並びが決まっていて,列数も10を超えていますので常に<削除⇔戻し>ができるようにということで,SQL文で考えてみたのです。 どうぞよろしくお願いします。 | ||||||||||||
|
投稿日時: 2004-10-24 16:06
NAL-6295です。
[デザイン時] DataGridのTableStylesプロパティ中にある GridColumnStylesを取得するデータとバインドできる形に設定し、 [実行時] SQLでデータを取得した後、 表示したいDataTableをCopyし ↓例
CheckBoxに合わせて、不必要な項目をDataTableから削除
してあげた上で、 DataGridのDataSourceに設定してあげれば、そのように動作します。 表示する項目を変化させる度に既に取得しているDataSetからDataTableをコピーすることで、毎回SQLを発行しなくても、項目の表示が変わると思います。 |
1|2|3
次のページへ»