ASP.NETのdivの分離コードファイルでCSSスタイルをどのように変更しますか?


96

私のaspxページのコードビハインドのデータベーステーブルから取得した情報に基づいて、divのCSSスタイル属性を変更しようとしています。以下は基本的に私がやろうとしていることですが、エラーが発生します。

Aspx:

<div id="testSpace" runat="server">
    Test
</div>

分離コード:

testSpace.Style = "display:none;"    
testSpace.Style("display") = "none";

何が悪いのですか?

回答:


155
testSpace.Style.Add("display", "none");

6
testSpace.Attributes.Add( "style"、 "display:none;"); も機能します。
ロバートC.バース

2
確かにロバート、この行は両方のスタイルをマージするのではなく、既存のスタイルを新しいスタイルに置き換えると思います。
Necriis、2015年

1
便利なことに、これは既存のスタイルを置き換えます。たとえば、クラス属性を完全に変更したい場合があります。
アンドリューモートン

74

これはHtmlGenericControlなので、これを行うための推奨される方法がわからないので、次のようにすることもできます。

testSpace.Attributes.Add("style", "text-align: center;");

または

testSpace.Attributes.Add("class", "centerIt");

または

testSpace.Attributes["style"] = "text-align: center;";

または

testSpace.Attributes["class"] = "centerIt";

15

それを行う別の方法:

testSpace.Style.Add("display", "none");

または

testSpace.Style["background-image"] = "url(images/foo.png)";

vb.netでは、次のように実行できます。

testSpace.Style.Item("display") = "none"

testSpace.Style.Item("display") = "none";.NET 4.0のラベルコントロールでの使用に問題がありました。エラーがあります'System.Web.UI.CssStyleCollection' does not contain a definition for 'Item' . . . 。これは特定の.NETバージョンに固有ですか?
Adam Miller

1
ごめんなさい。最初のものはVB.netアプローチでした。回答を編集します
Nikolaj Zander

0

イニシャライザ構文new要素を起動する場合は、次のようなことができます。

var row = new HtmlTableRow
{
  Cells =
  {
    new HtmlTableCell
    {
        InnerText = text,
        Attributes = { ["style"] = "min-width: 35px;" }
    },
  }
};

またはCssStyleCollection具体的に使用する場合:

var row = new HtmlTableRow
{
  Cells =
  {
    new HtmlTableCell
    {
        InnerText = text,
        Style = { ["min-width"] = "35px" }
    },
  }
};
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.