【问题标题】:Asp.Net CheckBoxList ListItem CssClass Override by aspNetDisabledAsp.Net CheckBoxList ListItem CssClass Override by aspNetDisabled
【发布时间】:2014-01-27 10:52:58
【问题描述】:

我在 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 中进行一些处理。

【问题讨论】:

    标签: c# asp.net checkboxlist


    【解决方案1】:

    我有类似的问题。在我的情况下,在禁用元素上应用了 aspNetDisabled 类,并且所有禁用的控件都有错误的颜色。因此,我使用 jquery 删除了我不会使用的每个元素/控件上的此类,并且现在一切正常并且看起来很棒。

    这是我删除 aspNetDisabled 类的代码:

    $(document).ready(function () {
    
        $("span").removeClass("aspNetDisabled");
        $("select").removeClass("aspNetDisabled");
        $("input").removeClass("aspNetDisabled");
    
    }); 
    

    【讨论】:

      【解决方案2】:

      尝试使用 CssClass 而不是 class 设置您的类。

      我正在使用 .NET 4.5.1

      我已经对此进行了测试,如果您设置了类属性,.enabled = false覆盖类属性aspNetDisabled。但是,如果您设置了 CssClass,则该值将与 aspNetDisabled合并

      注意:我看到您正在使用这行代码设置类:

      li.Attributes.Add("class", (string)dr["CssClass"]);
      

      但是,我应该注意,当我在标记中设置 class 而不是 CssClass 时,我会看到相同的行为。

      【讨论】:

        猜你喜欢
        • 2014-11-05
        • 2014-08-01
        • 1970-01-01
        • 2023-03-30
        • 2021-11-18
        • 2016-01-24
        • 2011-05-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多