คุณปรับเปลี่ยนสไตล์ CSS ในโค้ดหลังไฟล์สำหรับ div ใน ASP.NET ได้อย่างไร?


97

ฉันกำลังพยายามแก้ไขแอตทริบิวต์สไตล์ CSS สำหรับ div ตามข้อมูลที่ได้รับจากตารางฐานข้อมูลในโค้ดด้านหลังของหน้า aspx ของฉัน ต่อไปนี้เป็นสิ่งที่ฉันพยายามทำอยู่ แต่ได้รับข้อผิดพลาด

Aspx:

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

รหัสหลัง:

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

ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


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

6
testSpace.Attributes.Add ("style", "display: none;"); ก็ใช้ได้เช่นกัน
Robert C.Barth

2
ไม่แน่ใจว่าโรเบิร์ตฉันคิดว่าบรรทัดนี้จะแทนที่สไตล์ที่มีอยู่ด้วยสไตล์ใหม่แทนที่จะรวมทั้งสองสไตล์
Necriis

1
มีประโยชน์แทนที่สไตล์ที่มีอยู่เช่นคุณอาจต้องการเปลี่ยนแอตทริบิวต์คลาสทั้งหมด
Andrew Morton

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 นั้นเฉพาะสำหรับเวอร์ชัน. NET โดยเฉพาะหรือไม่
Adam Miller

1
ฉันขอโทษ. อันแรกคือแนวทาง VB.net ฉันจะแก้ไขคำตอบของฉัน
Nikolaj Zander

0

หากคุณnewติดตั้งองค์ประกอบที่มีไวยากรณ์ของ initializerคุณสามารถทำสิ่งนี้ได้:

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.