- PR -

データグリッドビューに関して

投稿者投稿内容
タニ
会議室デビュー日: 2006/11/06
投稿数: 3
投稿日時: 2006-11-07 15:25
返信おそくなり申し訳ございません
皆様お答えありがとうございます

かるあ様
仕様でそのようになっています。
自分もあまりしたくないのですが…

じゃんぬねっと様
R・田中一郎様

コードまで載せていただいて、ありがとうございます。
両方試してみました、処理速度はあがったもののスムーズにとはいかないです。
じゃんぬさんの仰るとおりVisible = false のコストだと考えるとこの仕様自体が
自分のコーディングもそうだとは思うのですがVisible = false のコストが遅くしている一番の原因と考えるのが一番なのでしょうか。

platini様

大変残念ながらそういうオチは無かったです。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-11-07 15:37
引用:

タニさんの書き込み (2006-11-07 15:25) より:

かるあ様
仕様でそのようになっています。
自分もあまりしたくないのですが…


いや、そのような仕様になった理由があると思うのですが。。。

ただ表に表示したくないだけなのか、
それとも非表示にした列を後の処理に使うために行っているのか。
その理由によってはもっと効率の良い方法があるかもしれません。
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-11-07 16:50
こんにちは。

引用:

かるあさんの書き込み (2006-11-06 11:34) より:

まず、何のために50列のうち40列を非表示にしたいのでしょうか?


私もこのあたりが非常に気になっていて、これに対する回答次第で流れが変わ
ってくるなと考えていました。のであえて回答をしていなかったのですが

引用:

タニさんの書き込み (2006-11-07 15:25) より:

かるあ様
仕様でそのようになっています。
自分もあまりしたくないのですが…


という回答だったので、むむむ…と唸ってしまいました。

個人的には


  1. DataGridView.AutoGenerateColumns プロパティが True になっていて、50列あるテーブルの内容が全て表示されている。
  2. しかし必要な列は10列だけなので、残り40列を最初の方法で非表示にしている。

という感じなのでは?と思っていました。この通りかどうかはわかりませんが。

もし私の思惑通りで、なおかつかるあさんのおっしゃるように「ただ表に表示したく
ないだけ」なのであれば、AutoGenerateColumns を False に設定して自
分で列を作成するも良し、DataGridView.DataSource として与えるときに
10列だけを選択するようにするも良し、といろいろ取りうる方法があると思います。

そのところを「どういった経緯で」このようなコーディングをすることになったのか
を知りたいのですよ。最初から10列だけが必要で、現在非表示にしている40列
がそもそもまったく不要なのであれば、このコーディングはムダだなぁと言わざる
をえませんし、それならそれで改善案も出せますが「仕様です」でまとめられてし
まうと「仕様なら仕方ありませんね。部外者が口を挟む問題じゃないですね」で
終了になってしまうわけで。
かるあさんもおっしゃられていますが、その理由をお聞かせ願えますでしょうか。
よろしくお願いします。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
タニ
会議室デビュー日: 2006/11/06
投稿数: 3
投稿日時: 2006-11-08 15:58
度々返答遅くなり申し訳ございません。
かるあ様  ぽぴ王子様
ありがとうございます。

この様に書き込みをすることが不慣れであり、
皆様の質問に的確にお答えできず申し訳ないです…

非表示の40件に関して
更新登録などに使用しております。
テーブルに主キーがない為、この50件は必ず読み込んで置かないと
レコードの特定ができない状況です。
その為、50件読み込み40件非表示という状態になっております。

この50件読み込みのまま少しでも早く表示できるよう
お力をお借りしたいと思っております

また自分の言葉不足でなにか足りない点等ありましたら
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2006-11-08 17:30
でしたらSessionやViewStateにデータを入れておいて、表示する必要のない項目はさっくりとはなから表示しなければ大丈夫じゃないですか>
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-11-08 18:02
こんにちは。

返答ありがとうございます。
50列(件ではなく列ですよね?)全てがないと特定ができないというのは、ちょっ
と DB 設計者出てこいと叫びたくなる感じですが、それはまた別問題ということ
で。

たぶん前にも書いたように DataGridView.AutoGenerateColumns プロ
パティが True に設定してある状態なのだと思いますが、それを False に設定
して、自分で列の設定をしてみてはどうでしょうか。
表示に使用する列は10列あまりということで、そんなに大変な作業でもなさそう
ですし、一度設定しておくけばコードで非表示にする必要もないような気がします。

少し検討してみてください。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2006-11-08 23:01
あぁWebじゃなくてWinでしたねorz
ぽぴ王子さんのおっしゃってるように表示する必要がないならもとから表示しなければOKですよ。

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