2016-01-22 94 views
-1

我在這個問題上搜索了一段時間,無法找到任何地方的工作答案。如何更改禁用的Asp.net DropDownList的文本顏色

我有一個asp DropDownList,基於窗體是否處於查看模式而被禁用和啓用。我遇到的問題是當DropDownList.Enabled = false時,文本很難閱讀(lightgrey上的灰色)。

我通過將DropDownList傳遞給某些方法來解決了這個問題。

public void DisableDDL(ref DropDownList DDL) 
{ 
    DDL.BackColor = System.Drawing.Color.LightGray; 
    foreach (ListItem i in DDL.Items) 
    { 
     if (i != DDL.SelectedItem) 
     { 
      i.Enabled = false; 
     } 
    } 
} 

public void EnableDDL(ref DropDownList DDL) 
{ 
    DDL.BackColor = System.Drawing.Color.White; 
    foreach (ListItem i in DDL.Items) 
    { 
     i.Enabled = true;       
    } 
} 

是否有另一種方法可以做到這一點? 我試過使用CSS,但沒有奏效。

<style> 
.disabledStyle 
{ 
    color: black;   
} 
</style> 

myDDl.CssClass = "disabledStyle"; 

回答

0

有DropDownList控件沒有隻讀屬性。但是,當焦點接收到焦點時,可以將焦點移到另一個控件上,這樣可以防止焦點發生變化並使文本保持黑色。

0

您需要的樣式應用到每個單獨的列表項,而不是將DropDownList本身

+0

這聽起來很乏味,我對15的DDL啓用/禁用。 –

+0

創建一個輔助方法。傳遞一個DropDownList對象。迭代它:ListItems中的foreach Item {Item.CssClass =「aspNetDisabled」; } – SED

+0

項目似乎沒有作爲屬性。如果我進入Item.Attributes,它有一個CssStyle屬性,但它只是{get}。 –

0

我剛纔放在一個下拉列表,並把它啓用控制器假,然後我發現,它有一個名爲「aspNetDisabled」的類,我試圖用CSS來改變它的顏色,它完美的工作。

<style> 
    .aspNetDisabled 
    { 
     color: #FFF; 
     background-color: #000; 
    } 
</style> 

在代碼中,如果你把下拉列表,「ddl.enabled =假」,這將是這樣的:

<select name="DropDownList1" id="DropDownList1" disabled="disabled" class="aspNetDisabled"></select> 

如果dropdownlists由一個div類包圍,使用類來定義那些殘疾人:

<style> 
    .MyCssClass[disabled] 
    { 
     color: #FFF; 
     background-color: #000; 
    } 
</style> 

或者嘗試

:disabled,[disabled] 
{ 
    -ms-opacity: 0.5; 
    opacity:0.5; 
} 
</style> 

正如在這裏說: http://forums.asp.net/t/2028164.aspx?IE+11+disabled+buttons+links+not+shown+as+greyed+out

+0

這工作從本地主機運行IE11和從主機服務器的鉻,但是當我在主機服務器在IE11中嘗試它時,它仍然顯示灰色灰色。 –

+0

@CharlesDriverJr。看看我的編輯 – Zeuthenjr

+0

仍然沒有工作。儘管謝謝你的幫助。我將繼續我目前的解決方法。 –

相關問題