从后面的代码中删除 ASP.net 中 <li> 标记的 CSS 类
Posted
技术标签:
【中文标题】从后面的代码中删除 ASP.net 中 <li> 标记的 CSS 类【英文标题】:Removing CSS class from <li> tag in ASP.net from code behind 【发布时间】:2012-11-11 08:33:39 【问题描述】:我向我的 li 标签添加了一个 css 类,如下所示:
liComPapers.Attributes.Add("class", "NoDisplay");
有什么方法可以从我代码中其他地方的那个 li 标签中删除这个特定的类(NoDisplay)?
我尝试了以下代码,但它不起作用。
liComPapers.Attributes["class"] = "";
谢谢
【问题讨论】:
【参考方案1】:建议方法
liComPapers.Attributes["class"] = liComPapers.Attributes["class"].Replace("NoDisplay", "");
将剪切另一个包含字符串"NoDisplay"
的css类,并会导致错误
例如
<li class="NoDisplay AnotherClass-NoDisplay"></li>
变成
<li class=" AnotherClass-"></li>
所以,更安全的解决方案是
liComPapers.Attributes["class"] = String.Join(" ", liComPapers.Attributes["class"]
.Split(' ')
.Where(x => x != "NoDisplay")
.ToArray());
【讨论】:
【参考方案2】:liComPapers.Attributes.Remove("class");
我们可以删除特定 li 标签的 CSS 属性
【讨论】:
【参考方案3】:如果我理解正确:
如果您只想删除NoDisplay
,您可以将字符串的那部分替换为空字符串:
liComPapers.Attributes["class"] = liComPapers.Attributes["class"].Replace("NoDisplay", "");
但是,.Add("class", "NoDisplay")
不会将新类添加到您的类属性中。它将创建一个新的class
属性,其值为NoDisplay
。因此,如果您的标记当前是:
<li class="myClass"></li>
它会变成:
<li class="myClass" class="NoDisplay"></li>
这是无效的标记。
要将新类附加到具有现有类的元素,您可以:
liComPapers.Attributes["class"] += " NoDisplay";
这将呈现:
<li class="myClass NoDisplay"></li>
【讨论】:
你比我快一点:)【参考方案4】:我刚刚制作了一个示例来测试您的代码,发现以下部分将完全符合您的要求:
var newClassValue = liTest.Attributes["class"].Replace("NoDisplay", "");
liTest.Attributes["class"] = newClassValue;
经过测试和工作: 如果(由于某种原因)上面的代码不起作用,我会推荐另一种方法,它类似于以前的方法,用另一种方法替换类值
var newClassValue = liTest.Attributes["class"].Replace("NoDisplay", "");
liTest.Attributes.Remove("class");
liTest.Attributes.Add("class",newClassValue);
【讨论】:
【参考方案5】:您的代码似乎正确。 查看此链接:How to: Set html Attributes for Controls in ASP.NET Web Pages
你在使用回调/ajax 吗?也许你没有考虑到这一点..
尝试做一个只有一个控件的简单页面并放置一个按钮来执行回发,在按钮的单击事件(服务器端)上分配属性,方法与以前相同。它应该可以工作。
【讨论】:
【参考方案6】:尝试以下方法:
liComPapers.Attributes.Remove("class");
AttributeCollection.Remove Method
【讨论】:
以上是关于从后面的代码中删除 ASP.net 中 <li> 标记的 CSS 类的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ASP.NET 从后面的代码中添加一个额外的 css 类?
从 ASP .Net Web 表单后面的代码中获取 Select2 选定值