2009-12-14 25 views
47

Tôi đang sử dụng aspx. Nếu tôi có HTML như sau:Thêm lớp css thông qua mã aspx sau

<div id="classMe"></div> 

Tôi hy vọng sẽ tự động thêm lớp css thông qua mã phía sau tệp, tức là trên Page_Load. Có thể không?

Trả lời

98

Nếu bạn muốn thêm thuộc tính, bao gồm cả lớp, bạn cần đặt runat="server" trên thẻ.

<div id="classMe" runat="server"></div> 

Sau đó, trong code-behind:

classMe.Attributes.Add("class", "some-class") 
+0

Cảm ơn, tôi chắc chắn nó sẽ là đơn giản này. – DanDan

+0

thực hiện điều này có ghi đè lên các lớp hiện có không? – DevDave

+1

@Tyler, no. Điều này cho biết thêm một tên lớp mới để kiểm soát. Bạn cũng có thể sử dụng 'Clear' và' Remove' trên bộ sưu tập 'Thuộc tính'. http://msdn.microsoft.com/en-US/library/system.web.ui.attributecollection(v=vs.100).aspx –

16

Nếu bạn không sử dụng các id cho bất cứ điều gì khác hơn là code-behind tài liệu tham khảo (vì .net mangles id), bạn có thể sử dụng một panel kiểm soát và tham khảo nó trong codebehind của bạn:

<asp:panel runat="server" id="classMe"></asp:panel> 

classMe.cssClass = "someClass" 
+0

Cảm ơn bạn đã nhập. – DanDan

+0

bạn được chào đón :) – Jason

3
controlName.CssClass="CSS Class Name"; 

dụ làm việc sau dưới đây

txtBank.CssClass = "csError"; 
3
BtnAdd.CssClass = "BtnCss"; 

BtnCss nên có mặt trong Css File của bạn.

(tài liệu tham khảo của tên Css file nên được bổ sung vào aspx nếu cần)

1

Cú pháp:

controlName.CssClass="CSS Class Name"; 

Ví dụ:

txtBank.CssClass = "csError"; 
0

Giả sử bạn div có một số CSS các lớp học đã có ...

<div id="classMe" CssClass="first"></div> 

Sau đây sẽ không thay thế các định nghĩa hiện:

ClassMe.CssClass += " second"; 

Và nếu bạn không chắc chắn cho đến thời điểm rất ít ...

string classes = ClassMe.CssClass; 
ClassMe.CssClass += (classes == String.Empty) ? "second" : " second"; 
Các vấn đề liên quan