- PR -

htmlコントロールの属性設定について

1
投稿者投稿内容
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2008-06-14 13:57
こんにちわ。今日も物造りしてます(汗)

コードビハインドでプログラム(webフォーム)を作成しています。
サーバーサイドでhtmlコントロールの属性を設定しようとしているのですが、
上手くいきません。webコントロールだと上手くいくので違いがあるのでしょうか?
宜しくお願いします。

-----------------------------------------------------------
※実行後のHTMLに属性が追加されない×(HTMLコントロール)
      //HTMLの<td>タグの設定
HtmlTableCell tdTagName = new HtmlTableCell("HeaderTD");
tdTagName.Attributes["bgcolor"] = "#FF0000";

※実行後のHTMLに属性が追加される○(Webコントロール)
this.CheckBoxNoCheck.Attributes["onclick"] = "NoValidate(this);";
----------------------------------------------------------
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-06-14 18:22
「上手くいかない」と仰っているのは、本当に属性が追加されないからですか?

1点目:
コードビハインド内でページにコントロールを追加するには、Page に Panel などを先に配置したうえで、その Controls プロパティに追加してあげる必要があります。
# Page の Controls でも一応追加できますが、 </html> の後に追加されちゃいます

2点目:
ページに追加されたとしても、上記のコードで追加されるものは
コード:
<HeaderTD bgcolor="#FF0000"></HeaderTD>


というHTMLになると思いますので、お望みの結果ではないでしょう。

コード:
HtmlTableCell tdTagName = new HtmlTableCell("TD");
tdTagName.Attributes["bgcolor"] = "#FF0000";
tdTagName.InnerText = "表示したいテキスト";
Panel1.Controls.Add(tdTagName);


てな感じでうまくいくと思います。
# ホントは HtmlTable とか HtmlTableRow などをアレコレ追加しないと、テーブルとしては不自然ですが
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2008-06-14 19:41
rainさん 回答ありがとう御座います!

そう言えばPanelコントロールありましたね、そんなの(爆)
しかも new HtmlTableCell("xxx") すると新しいxxxタグを生成するんですね。
気づいていませんでした。。。

なるほど、ということは Panel コントロールの中に tableタグから
きれいにそろえて生成しなきゃいけないですね。
理解しました、ありがとう御座いました。
1

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