aspxファイルの<td>タグに指定したclass属性を条件によって動的に変更する。
ラベルやテキストなどのコントロールに対して設定したcssclassの動的変更や、JavaScriptを使ってcssファイルを切り替えるというのはけっこうネットでも公開されていますけど、td,tr,divなどのタグに対して、サーバ処理(aspx.csファイル)での変更は意外と情報がなくて苦労したのでここにメモっておきます。
ポイントは runat="server" を記載してサーバーコントロールとして扱うところでしょうか。
以下のソースを応用すれば、trやdivタグにも適用できそうです。
(aspxファイル)
<td id="tdtest1" class="csstest1" runat="server">
<asp:label id="lbtest1" runat="server">99,999</asp:label>
</td>
※デフォルトではcsstest1を指定
(aspx.csファイル)
// 定義部分
protected System.Web.UI.HtmlControls.HtmlTableCell tdtest1;
// 描画部分
if (条件)
{
((HtmlTableCell)FindControl("tdtest1")).Attributes["class"] = "csstest2";
}
else
{
((HtmlTableCell)FindControl("tdtest1")).Attributes["class"] = "csstest1";
}
※ある条件のときにclassをcsstest2に切り替える
(cssファイル)
csstest1
{
background-color:#FFFFFF;
text-align:right;
}
csstest2
{
background-color:#FFFF9C;
text-align:center;
}
ラベルやテキストなどのコントロールに対して設定したcssclassの動的変更や、JavaScriptを使ってcssファイルを切り替えるというのはけっこうネットでも公開されていますけど、td,tr,divなどのタグに対して、サーバ処理(aspx.csファイル)での変更は意外と情報がなくて苦労したのでここにメモっておきます。
ポイントは runat="server" を記載してサーバーコントロールとして扱うところでしょうか。
以下のソースを応用すれば、trやdivタグにも適用できそうです。
(aspxファイル)
<td id="tdtest1" class="csstest1" runat="server">
<asp:label id="lbtest1" runat="server">99,999</asp:label>
</td>
※デフォルトではcsstest1を指定
(aspx.csファイル)
// 定義部分
protected System.Web.UI.HtmlControls.HtmlTableCell tdtest1;
// 描画部分
if (条件)
{
((HtmlTableCell)FindControl("tdtest1")).Attributes["class"] = "csstest2";
}
else
{
((HtmlTableCell)FindControl("tdtest1")).Attributes["class"] = "csstest1";
}
※ある条件のときにclassをcsstest2に切り替える
(cssファイル)
csstest1
{
background-color:#FFFFFF;
text-align:right;
}
csstest2
{
background-color:#FFFF9C;
text-align:center;
}