2008-09-19 29 views
22

Cách kiểu có thể được áp dụng cho ListBoxems CheckBoxList. Không giống như các điều khiển khác, chẳng hạn như Repeater, nơi bạn có thể chỉ định <ItemStyle>, bạn dường như không thể chỉ định kiểu cho từng điều khiển riêng lẻ.Áp dụng kiểu cho ListItems trong CheckBoxList

Có một số loại công việc xung quanh?

Trả lời

22

Bạn có thể thêm thuộc tính để ListItems lập trình như sau.

Giả sử bạn có một CheckBoxList và bạn đang thêm ListItems. Bạn có thể thêm Thuộc tính trên đường đi.

ListItem li = new ListItem("Richard Byrd", "11"); 
li.Selected = false; 
li.Attributes.Add("Style", "color: red;"); 
CheckBoxList1.Items.Add(li); 

Điều này sẽ làm cho màu của văn bản danh sách màu đỏ. Thử nghiệm và vui chơi.

13

Dường như cách tốt nhất để làm điều này là tạo một CssClass mới. ASP.NET dịch CheckBoxList thành một cấu trúc bảng.

Sử dụng một cái gì đó giống như

style.css

.chkboxlist td 
{ 
    font-size:x-large; 
} 

Page.aspx

<asp:CheckBoxList ID="chkboxlist1" runat="server" CssClass="chkboxlist" /> 

sẽ làm các trick

+0

Điều này tất nhiên ảnh hưởng đến tất cả danh sách, để ảnh hưởng đến một danh sách đơn bạn cần thêm thuộc tính vào danh sách khi nó được tạo. – Cyberherbalist

+0

Cảm ơn lời khuyên!Tôi đã đi nhiều hơn cho một cái gì đó như thế nào một repeater có thể áp dụng một phong cách cho mỗi mục, nhưng điều này chắc chắn là hữu ích :) –

+0

Vâng, đó là trong câu trả lời của tôi (với mã), quá. – Cyberherbalist

4

Ngoài câu trả lời của Andrew ...

Tùy thuộc vào những gì thuộc tính khác mà bạn đặt trên một CheckBoxList hoặc RadioButtonList, hoặc bất cứ điều gì, ASP.Net sẽ làm cho sản lượng sử dụng cấu trúc khác nhau. Ví dụ: nếu bạn đặt RepeatLayout="Flow", nó sẽ không hiển thị dưới dạng BẢNG, vì vậy bạn phải cẩn thận về những bộ chọn con cháu bạn sử dụng trong tệp CSS của mình.

Trong các trường hợp nhất, bạn có thể chỉ cần thực hiện "Xem nguồn" trên trang được hiển thị của mình, có thể trên một vài trình duyệt khác nhau và tìm hiểu ASP.Net đang làm gì. Tuy nhiên, có một mối nguy hiểm là các phiên bản mới của các điều khiển máy chủ hoặc các trình duyệt khác nhau sẽ hiển thị chúng khác nhau.

Nếu bạn muốn tạo kiểu cho một mục danh sách cụ thể hoặc tập hợp các mục danh sách khác nhau mà không thêm thuộc tính vào mã phía sau, bạn có thể sử dụng bộ chọn thuộc tính CSS. Hạn chế duy nhất là chúng không được hỗ trợ trong IE6. jQuery hỗ trợ đầy đủ các bộ chọn thuộc tính CSS 3 kiểu, vì vậy bạn có thể cũng sử dụng nó để hỗ trợ trình duyệt rộng hơn.

4

Bạn cũng có thể đạt được điều này trong đánh dấu.

<asp:ListItem Text="Good" Value="True" style="background-color:green;color:white" /> 
<br /> 
<asp:ListItem Text="Bad" Value="False" style="background-color:red;color:white" /> 

Kiểu từ sẽ được gạch chân với cảnh báo Thuộc tính 'kiểu' không phải là thuộc tính hợp lệ của phần tử 'ListItem'., nhưng các mục vẫn được định dạng như mong muốn.

+1

+ 1. Điều đó thật tuyệt. Mặc dù tôi sẽ lo lắng vào một thời gian sau đó rằng họ làm cho nó để workaround này không làm việc nữa. – Cyberherbalist

1
public bool Repeater_Bind() 
{ 
    RadioButtonList objRadioButton = (RadioButtonList)eventArgs.Item.FindControl("rbList"); 
    if (curQuestionInfo.CorrectAnswer != -1) { 
     objRadioButton.Items[curQuestionInfo.CorrectAnswer].Attributes.Add("Style", "color: #b4fbb1;"); 
    } 
} 
1

Bạn thậm chí có thể có kiểu và kiểu phông chữ khác nhau cho mỗi từ.

<asp:ListItem Text="Other (<span style=font-weight:bold;>please </span><span>style=color:Red;font-weight:bold;>specify</span>):" Value="10"></asp:ListItem> 
Các vấn đề liên quan