2011-11-01 19 views
12

Điều đơn giản, tốt, tôi nghĩ là vậy.Attributes.Add ("class", "className") nhưng bảo tồn lớp hiện có

Tôi cần Thêm lớp học vào phần tử trong vòng asp: repeater trong các điều kiện nhất định, sử dụng VB.

Vì vậy, tôi có thể làm

ITEMID.Attributes.Add("class", "classToAdd") 

Nhưng này loại bỏ các lớp học hiện có và do đó vít lên CSS của tôi.

ITEMID.Attributes("class") = "classToAdd" 

Dường như làm điều tương tự.

Làm cách nào để thêm một lớp vào phần tử, trong khi vẫn giữ nguyên giá trị lớp hiện tại?

Trả lời

17

Sử dụng += để thêm lớp bổ sung, và chắc chắn rằng bạn để lại một không gian trước hoặc nếu không nó sẽ xuất hiện như currentClassclassToAdd, nơi lớp hiện nay là currentClass:

ITEMID.Attributes("class") += " classToAdd" 

này cũng giống như thực hiện:

ITEMID.Attributes("class") = ITEMID.Attributes("class") + " classToAdd" 

Do đó:

ITEMID.Attributes("class") = "currentClass" + " classToAdd" 
+1

Cảm ơn, hoạt động hoàn hảo! –

+9

Và đối với những người trong chúng ta sử dụng C# thay vào đó, đây là cú pháp chính xác: 'ITEMID.Attributes [" class "] + =" classToAdd "' –

2

Bạn cần phải ngăn xếp chúng lên:

Dim existingClasses as string = ITEMID.Attributes("class") 

ITEMID.Attributes.Add("class", existingClasses & " classToAdd") 
Các vấn đề liên quan