質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

2回答

17790閲覧

GridView特定行の背景色変更

doremifa

総合スコア33

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2016/10/13 23:54

###前提・実現したいこと
お世話になります。
ASPボタンのonclickイベント内でsqlコネクションをつくり、
Gridviewに対してデータバインドしています。
この時のsql結果に応じて特定行の背景色を変更したい。

###aspx

aspx

1<asp:Button ID="a" runat="server" Text="Go" OnClick="btn_go_Click" /> 2<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="20" AutoGenerateColumns="False" BackColor="White" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" CellPadding="6" EnableModelValidation="True" Width="950px" > 3<Columns> 4<asp:ButtonField ButtonType="Button" Text="ボタン" CommandName="gridbtn"/> 5<asp:BoundField DataField="name" HeaderText="name"></asp:BoundField> 6</Columns> 7</asp:GridView> 8

###C#

C#

1 protected void btn_go_(object sender, EventArgs e) 2 { 3 //このFLGがtrueだったら行の色を変更したい 4 string sql = "SELECT name,FLG FROM B " 5 6 SqlConnection sqlc = new SqlConnection(); 7 sqlc.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["CCC"].ConnectionString; 8 9 SqlCommand sqlcmd = new SqlCommand(); 10 sqlcmd.Connection = sqlc; 11 12 sqlcmd.CommandText = sql; 13 14 SqlDataAdapter adapt = new SqlDataAdapter(); 15 adapt.SelectCommand = sqlcmd; 16 17 DataSet datas = new DataSet(); 18 adapt.Fill(datas); 19 20 GridView_JOB.DataSource = datas; 21 //ここでバインドしている 22 GridView_JOB.DataBind(); 23 24 25 26 }

###補足情報(言語/FW/ツール等のバージョンなど)
ドットネットフレームワーク4.5.2
C#

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/14 02:47

SQL Server の B テーブルの FLG フィールドは bit 型、SqlDataAdapter を利用してクエリ SELECT name,FLG FROM B から DataSet を生成、それを GridView にデータバインドした際、DataSet の FLG 列が true の行はその行の背景色を変えるということで良いのですよね?(それを質問に書いておいていただかないと、前のスレッドを見ていない人には分かり難いので、次回はよろしくお願いします)
doremifa

2016/10/14 03:00

おっしゃる通りです。次回はそのようにいたします。
guest

回答2

0

ベストアンサー

この時のsql結果に応じて特定行の背景色を変更したい。

GridView の RowDataBound イベントで FLG 列のデータを取得してそこで css を設定するのがよさそうです。

バインドするデータが DataSet / DataTable の場合は、GridView の RowDataBound イベントのハンドラの引数 GridViewRowEventArgs オブジェクトから当該行の DataRowView を取得できます。

それから FLG の値(true / false)を取得して、GridViewRow の CssClass プロパティを設定するのがよさそうです。

具体的には以下のような感じです。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { DataRowView view = (DataRowView)e.Row.DataItem; if ((bool)view["FLG"]) { e.Row.CssClass = "style1"; } } }

style1 は別途以下のように定義して追加してください。

.style1 { background-color: #EEEEEE; }

投稿2016/10/14 03:15

編集2016/10/14 03:16
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

doremifa

2016/10/14 06:32

ありがとうございます。 おかげさまで無事解決いたしました。
guest

0

DataGridのItemDataBoundイベントを使うのはいかがでしょう?

https://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.datagrid.itemdatabound(v=vs.110).aspx

投稿2016/10/14 02:06

lain

総合スコア161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

doremifa

2016/10/14 02:39

ごめんなさい。コメント投稿とベストアンサー間違えました。 アドバイスいただいたItemDataBoundでやろうと試みておりますが グリッドビューの列にないFLGの値をどう取得すればいいのか わからないでいます。
退会済みユーザー

退会済みユーザー

2016/10/14 02:54

DataGrid ではなくて GridView を使用するのが条件のようです。
doremifa

2016/10/14 05:55

本来であればお二人ともベストアンサーとしたいところですが あいにくと1人しか選べませんので今回はSurferOnWwwさんに させていただきたく思います。 アドバイスありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問