はじめて質問させていただきます。
システム作成初心者です。
下記環境にて構築しています。
---------------------------------------------
言語:ASP.NET
JavaScript
開発環境:Visual Web Developer 2010 Express
データベース:SQLServer 2005
---------------------------------------------
1画面に、1ヶ月の日付が時系列で縦に表示された画面があります。
この画面に土曜日、日曜日、祝日も表示される訳ですが、
土・日・祝がきた場合、コード側で背景色をグレーアウトしたいと
考えています。
BackColorならプロパティ設定で変更は可能かと思われますが、
テーブルの行自体の背景色を変更するにはコード側での制御は不可能でしょうか?
リンクボタンがあり、そのボタンを押下すると前月、次月へと遷移される為、
動的に作成しています。)
ちなみにテーブル自体はHTMLのテーブルコントロールを使用しています。
** 画面イメージ *****
日付 備考
4/1(月) DBデータ
4/2(火) DBデータ
・
・
4/6(土) DBデータ ←背景色グレーアウト
********************
どなたかご教授の程、宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
「HTMLのテーブルコントロールを使用」ではなく、「ASP.NETの繰返し系コントロールでテーブルを表示」というのが正しい表現だと思います。
また、祝日の判定は別に判定メソッドが必要になります。
DBからTableAdapterなどでProductsオブジェクト(フィールド名"dt","comment")を1か月分取得し、asp:repeaterなどにDataBindします。
たとえば、tableのtrにbackgroundで表現するとすれば、aspxで
<table>
<tr>
<th>日付</th>
<th>備考</th>
</tr>
<asp:repeater id=Dailycomments runat=server>
<itemtemplate>
<tr background=<%# GetBgColor(Eval("dt")) %>>
<td><%# Eval("dt") %></td>
<td><%# Eval("comment") %></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
codefile側で、
this.Dailycomments.DataSource = Products;
でデータバインドすれば、バインド時にメソッド呼び出しが吐かれるので、
protected string GetBgColor(Object dt) {
var targetDate = dt as DateTime;
if (targetDate.DayOfWeek==0 || targetDate.DayOfWeek==6 || this.IsHoliday(targetDate)) {
return "#f0f0f0"; // light gray
} else {
return "#fffff";
}
}
のようなメソッドを用意しておいて答えを返すようにします。
「バインドクエリ」パターンですね。
このほかに、バインド時のonItemBoundイベントハンドラ中で行うやり方や、バインド完了後にRepeaterの行を舐める方法もあります。
自分だったらDataTableでなく、コレクションオブジェクトで読んでおき、"bkgcolor"なんてプロパティを水増して一発バインド。
No.1
- 回答日時:
HTMLのテーブルコントロールをどんな風に使って出力しているのか、その部分のコードを記載すると回答がつくかもしれません。
この回答への補足
edp3142さん
ご回答ありがとうございます。
HTMLのテーブルコントロールの使用方法ですが、下記のように使用しています。
<table border="0" cellspacing="0" class="border-overlap" style="table-layout:fixed; margin-left:30px;">
<tr class="listhead-color headHeight">
<td class="list" colspan="2" style="font-size:12px;" bgcolor="#a9a9a9" align="center" width="110px">
<asp:Label runat="server" Text="日付" />
</td>
<td class="list" style="font-size:12px;" bgcolor="#a9a9a9" align="center" width="50px">
<asp:Label runat="server" Text="実績工数" />
</td>
<td class="list" style="font-size:12px;" bgcolor="#a9a9a9" align="center" width="270px">
<asp:Label runat="server" Text="備考" />
</td>
</tr>
<tr id="ds_1">
<td width="100px" class="list" style="font-size:12px;">
<asp:Label ID="lbl_cost_1" runat="server" />
</td>
<td width="10px" class="list" align="center" style="font-size:12px;">
<asp:Label ID="lbl_cost_week_1" runat="server"/>
</td>
<td width="50px" class="list txt_ct" style="font-size:12px;">
<asp:TextBox ID="txt_cost_1" runat="server" Columns="2" CssClass="normal_off" />
</td>
<td width="270px" class="list" style="font-size:12px;">
<asp:TextBox ID="txt_cost_memo_1" runat="server" Columns="38" CssClass="normal_on" />
</td>
</tr>
.
.
又、土・日のフォントの色も変える必要があるのですが、これに関しては
動的な為コード側でIF文を使用して実装しています。
Me.lbl_cost_1.Text = mon & "月" & a & "日"
b = yyyy & "年" & mon & "月" & a & "日"
'曜日取得
Me.lbl_cost_week_1.Text = WeekdayName(Weekday(b)).Substring(0, 1)
'曜日設定
If WeekdayName(Weekday(b)).Substring(0, 1) = "土" Then
Me.lbl_cost_1.ForeColor = Drawing.Color.Blue
ElseIf WeekdayName(Weekday(b)).Substring(0, 1) = "日" Then
Me.lbl_cost_1.ForeColor = Drawing.Color.Red
END IF
追加でのご質問です。HTMLのTABLEコントロールのTRタグにIDを付与していますが、
コード側でTABLEコントロールのIDを取得する事は出来ないのでしょうか?
お忙しい中申し訳ございませんが、宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Access(アクセス) ACCESS2019 ナビゲーションウィンドウの色 1 2022/05/10 17:15
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルタグの中にdivを含めて...
-
テーブルの横に画像を
-
HTMLでテーブルを横に並べる方法
-
テーブルの位置を細かく指定し...
-
ウィンドウのサイズを変えても...
-
ヘッダー固定のスクロールが可...
-
テーブル内に画像を表示したい。
-
画像の横にテーブルを。。。
-
tableの背景色のみ半透明にする
-
tableのheight指定が効かない
-
DWで、デザインビューに表示さ...
-
テーブルの背景を透過する方法
-
箇条書きリストのすぐ横に画像...
-
2つのテーブルを左右に表示した...
-
同じ行で画像は左寄せ、右側に...
-
【CSS】縦横スクロールテーブル...
-
一つのテーブル内の文字色だけ...
-
Dreamweaverでテーブルの列幅を...
-
テーブルを半透明(または網掛け)
-
colspanを動的に行う
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルタグの中にdivを含めて...
-
テーブルの横に画像を
-
テーブルの位置を細かく指定し...
-
ウィンドウのサイズを変えても...
-
HTMLでテーブルを横に並べる方法
-
テーブル内に画像を表示したい。
-
ヘッダー固定のスクロールが可...
-
tableのheight指定が効かない
-
箇条書きリストのすぐ横に画像...
-
【CSS】縦横スクロールテーブル...
-
DWで、デザインビューに表示さ...
-
更新するとずれる?
-
複数のテーブルを無条件に中央...
-
2つのテーブルを左右に表示した...
-
一つのテーブル内の文字色だけ...
-
<SPAN>で文字を右揃えにしたい...
-
テーブルでスクロールを同期したい
-
画像の横にテーブルを。。。
-
テーブルの高さ幅の固定方
-
スタイルシートで、画像の横に...
おすすめ情報