- PR -

DataGridレコードに条件によってメッセージを。。

1
投稿者投稿内容
TOKIO
会議室デビュー日: 2003/04/19
投稿数: 4
投稿日時: 2003-06-28 23:53
こんにちは
select no,msg from table
で検索結果をDataGridに表示させており、
msg列が
1だったら赤色で[商品A]
2だったら青色で「商品B」としたいのですが、
条件によって表示を変えるやり方がわかりません。
カスタム連結式を使うのだろうとは思いますが。。いまいちわかりません。
色指定は難しくてもIF条件で表示内容を変更してみたいのですが、やり方教えてください。
ZEBRA
常連さん
会議室デビュー日: 2003/04/14
投稿数: 38
投稿日時: 2003-06-29 16:54
こんにちわ。

質問にお答えする前に、まず最初にお聞きしたいことがあります。
DataGridに表示させるとありますが、どの種類のDataGridでしょうか?
WindowsApplicationのDataGridですか?それともASP.NETアプリケーションのDataGridのことですか?両者は、同じDataGridでも、まったく別物のコントロールなので、解決策も異なってきます。
後者のASP.NETアプリケーションのDataGridでしたら、以前私が書き込んだ別のスレッド「DataGridにて行数表示方法」が参考になるかと思います。
(ソースを掲載しているスレッドです)
目的は異なりますが、使ってる技術は同じなので、応用で何とか解決できるかと思います。
モデラート
会議室デビュー日: 2003/06/29
投稿数: 9
お住まい・勤務地: 東京都
投稿日時: 2003-06-29 23:58
こんにちは。
初めて会議室に投稿します。

ASP.NETでのお話だと仮定して答えます。
以下の例は・・・

左から1番目の列の値が「True」の場合に、
そのレコード全体の文字色を「LightGray」に設定する、
と言うものです。(※言語:VB.NET)

この作業をDataGridにDataBindした後に行うと、お望みの行が指定の文字色になります。これで解決しましたでしょうか?
ちなみに、dgridはDataGridのIDとなります。

--------------------------
Dim di As DataGridItem

For Each di In dgrid.Items
  If di.Cells(0).Text = "True" then
   di.ForeColor = Color.LightGray
  End If
Next
--------------------------
TOKIO
会議室デビュー日: 2003/04/19
投稿数: 4
投稿日時: 2003-07-01 10:17
ZEBRA様モデラート様
ありがとうございます。
インターネットがやっと使える場所で返事書いております。
遅くなりまして申し訳ございません。

ZEBRA様
これから過去のログ見させて頂きます。
ASP.NETでの話でした。提供する情報が少なかった事申し訳ございません。
こちらで実装してみてその結果また報告させて頂きます。
モデラート様ソースコードありがとうございます。
このコードはDataBindした後でよいのですね。
参考になります。
イメージがつかめなかったのはDatabindしてからではDataGridの描画が行われてしまった後なのでその描画してしまったDataGridコントロールを操作して何かするというのは私の頭では考えられなかったです。
モデラート
会議室デビュー日: 2003/06/29
投稿数: 9
お住まい・勤務地: 東京都
投稿日時: 2003-07-04 01:02
こんにちはTOKIOさん。

参考になったようで、嬉しい限りです。
私もDataBindした後では変更が不可能かと思ったのですが、ある書籍を読んでいるとこのように書いてあったので、参考にいたしました。
まだまだこれからも書籍には頼る事になりそうです・・・。
お互い頑張りましょう!
1

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