我在WebFrom上有一个CheckBoxList
<asp:CheckBoxList id="chkList" runat="server">
</asp:CheckBoxList>
现在控件在服务器端填充了类似这样的东西
DataTable dt = myDatasource
foreach(DataRow dr in dt.Rows)
{
ListItem li = new ListItem();
li.Attributes.Add("class", (string)dr["CssClass"]);
//........ Some More Properties.....
chkList.Items.Add(li);
}
之后我需要根据某些条件禁用一些复选框
foreach(ListItem item in chkList.Items)
{
if (// Some Condition)
{
item.Enabled = false;
}
}
现在问题是当item.Enabled = false时,类属性被
覆盖class = "aspNetDisabled";
以及不再填充时应用的类。
我需要该类在javascript中进行一些处理。
答案 0 :(得分:2)
我有类似的问题。在我的情况下,应用了禁用的元素,aspNetDisabled类和所有禁用的控件都有错误的颜色。所以,我使用jquery来删除每个元素/控件上的这个类,并且一切正常,现在看起来很棒。
这是我删除aspNetDisabled类的代码:
$(document).ready(function () {
$("span").removeClass("aspNetDisabled");
$("select").removeClass("aspNetDisabled");
$("input").removeClass("aspNetDisabled");
});
答案 1 :(得分:1)
尝试使用 CssClass 而不是类设置课程。
我正在使用 .NET 4.5.1 。
我已对此进行了测试,看来如果您设置了类属性,li.Attributes.Add("class", (string)dr["CssClass"]);
将使用 aspNetDisabled 覆盖类属性。但是,如果您设置了 CssClass ,那么该值将合并与 aspNetDisabled 。
注意:我看到你用这行代码设置了类:
Array
但是,我应该注意到,当我在标记中设置 class 而不是 CssClass 时,我会看到相同的行为。