我在这个问题上搜索了一段时间,无法在任何地方找到合适的答案。
我有一个asp DropDownList,它根据窗体是否处于视图模式而被禁用和启用。我遇到的问题是DropDownList.Enabled = false时文本难以阅读(浅灰色)。
我通过将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 :(得分:0)
您需要将样式应用于每个单独的ListItem,而不是应用于DropDownList本身
答案 1 :(得分:0)
我刚刚放入一个下拉列表并将其设置为在控制器中启用false,然后我发现它有一个名为“aspNetDisabled”的类,我尝试使用CSS来改变它的颜色,它完美地工作。
<style>
.aspNetDisabled
{
color: #FFF;
background-color: #000;
}
</style>
在代码中,如果你把下拉列表“ddl.enabled = false”,它将是这样的:
<select name="DropDownList1" id="DropDownList1" disabled="disabled" class="aspNetDisabled"></select>
如果下拉列表被带有类的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
答案 2 :(得分:0)
dropdownlist控件没有readonly属性。但是,当您收到焦点时,您可以将焦点移动到另一个控件,这样可以防止它被更改并使文本保持黑色。
答案 3 :(得分:0)
最简单的方法:
<style>
[disabled] { /* Text and background colour, medium red on light yellow */
color:#933;
background-color:#ffc;
}
</style>