2008-09-19 224 views

回答

22

可以以編程方式將屬性添加到時listItems如下。

假設你有一個CheckBoxList並且你正在添加ListItems。您可以一路添加屬性。

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

這將使listitem文本的顏色變爲紅色。試驗一下,玩得開心。

13

看來最好的方法是創建一個新的CssClass。 ASP.NET將CheckBoxList轉換爲表結構。

使用類似

的style.css

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

Page.aspx

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

會做的伎倆

+0

這當然會影響所有listitems,以影響您創建listitem時需要添加屬性的單個listitem。 – Cyberherbalist 2008-09-19 19:05:08

+0

感謝您的提示!我正在做更多的事情,比如一個轉發器如何將樣式應用於每個項目,但這當然有幫助:) – 2008-09-19 19:33:02

4

除了安德魯的回答......

根據你放什麼其他屬性上CheckBoxListRadioButtonList,或什麼,ASP.Net會採用不同的結構渲染輸出。例如,如果您設置了RepeatLayout="Flow",它將不會呈現爲TABLE,因此您必須小心您在CSS文件中使用的後代選擇器。

大多數的情況下,你可以在你的渲染頁面,也許在幾個不同的瀏覽器上做一個「查看源代碼」,並找出ASP.Net正在做什麼。不過,有一種危險,服務器控件的新版本或不同的瀏覽器會以不同的方式呈現它們。

如果您想在不添加代碼隱藏屬性的情況下對某個特定列表項目或一組列表項目進行不同的樣式設置,則可以使用CSS屬性選擇器。唯一的缺點是它們在IE6中不受支持。 jQuery完全支持CSS 3樣式屬性選擇器,因此您可能也可以將其用於更廣泛的瀏覽器支持。

4

你也可以在標記中實現這一點。

<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" /> 

Word樣式將與屬性「風格」不是元素「列表項」的有效屬性警告加以強調。,但是無論如何,這些項目都會根據需要進行格式化。

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

甚至可以爲每個單詞使用不同的字體樣式和顏色。

<asp:ListItem Text="Other (<span style=font-weight:bold;>please </span><span>style=color:Red;font-weight:bold;>specify</span>):" Value="10"></asp:ListItem>