Bagaimana Anda mengubah gaya CSS di kode di belakang file untuk div di ASP.NET?

96

Saya mencoba untuk memodifikasi atribut gaya CSS untuk div berdasarkan informasi yang saya dapatkan dari tabel database dalam kode di belakang halaman aspx saya. Berikut ini pada dasarnya apa yang saya coba lakukan, tetapi saya mendapatkan kesalahan.

Aspx:

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

Kode Belakang:

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

Apa yang saya lakukan salah?

EverTheLearner
sumber

Jawaban:

155
testSpace.Style.Add("display", "none");
Andy White
sumber
6
testSpace.Attributes.Add ("style", "display: none;"); juga akan berhasil.
Robert C.Barth
2
Tidak begitu yakin Robert, saya pikir baris ini akan menggantikan gaya yang ada dengan yang baru daripada menggabungkan kedua gaya.
Necriis
1
Berguna, ini menggantikan gaya yang ada, misalnya Anda mungkin ingin mengubah atribut kelas sepenuhnya.
Andrew Morton
74

Ini adalah HtmlGenericControl jadi tidak yakin cara yang disarankan untuk melakukannya, jadi Anda juga dapat melakukan:

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

atau

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

atau

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

atau

testSpace.Attributes["class"] = "centerIt";
nickytonline.dll
sumber
15

Cara lain untuk melakukannya:

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

atau

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

di vb.net Anda dapat melakukannya dengan cara ini:

testSpace.Style.Item("display") = "none"
Nikolaj Zander
sumber
Saya mengalami masalah saat menggunakan testSpace.Style.Item("display") = "none";pada kontrol label di .NET 4.0. Saya mendapat kesalahan 'System.Web.UI.CssStyleCollection' does not contain a definition for 'Item' . . . . Apakah itu khusus untuk versi .NET tertentu?
Adam Miller
1
saya menyesal. yang pertama adalah pendekatan VB.net. saya akan mengedit jawaban saya
Nikolaj Zander
0

Jika Anda newmenggunakan elemen dengan sintaks penginisialisasi , Anda dapat melakukan sesuatu seperti ini:

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

Atau jika menggunakan CssStyleCollectionsecara khusus:

var row = new HtmlTableRow
{
  Cells =
  {
    new HtmlTableCell
    {
        InnerText = text,
        Style = { ["min-width"] = "35px" }
    },
  }
};
killa-byte
sumber