goo blog サービス終了のお知らせ 

ぶろぐらまぁの日記

仕事でのTIPSをメモっておきます。
個人的なメモなので、参考にするのは
構いませんが、責任は持ちませんよ。w

<td>タグに指定したclassを動的に変更する

2010年06月10日 15時44分23秒 | .net
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;
}