如何从整个页面asp.net c#中删除类名

Posted

技术标签:

【中文标题】如何从整个页面asp.net c#中删除类名【英文标题】:how to remove a class name from entire page asp.net c# 【发布时间】:2017-05-06 09:30:11 【问题描述】:

我的代码是这样的

<th runat="server" id="thTodayToTenTotal" class="redRow">  
<th runat="server" id="thTodayToTenTotal" class="redRow">

我从 CodeBehind 中删除了 class="redRow" 这样的属性

thTodayToTenTotal.Attributes.Remove("class"); 

没关系。

但是“redRow”类可以在我的页面中有很多。如何一次性从整个页面中删除此类名称。然后我想将这个类添加到一个html元素中。我的意思是我有

<th runat="server" id="wantToAddClass"> 

我像这样从 CodeBehind 添加类

wantToAddClass.Attributes.Add("class", "redRow");

【问题讨论】:

你能详细解释一下吗 请查看我编辑的问题。谢谢 Satish Patil。 您对 Jquery 解决方案持开放态度吗? 很确定你想循环浏览控件集合 【参考方案1】:

正如 CRise 评论的那样,您必须循环所有 Web 控件并找到具有所需类的每个控件。

让我在这里给你一些帮助。

让我们创建一个实用程序方法。

IEnumerable<Control> FindControl( Control c, Func<Control,bool> predicate )

    if( predicate( c ) )
        yield return c;

    foreach (var child in c.Controls) 
        if (predicate((Control)child)) 
           yield return (Control)child;
        
    

    foreach( var child in c.Controls )
        foreach( var match in FindControl( (Control)child, predicate ) )
           yield return match;

然后在任何你想检查你的类的地方调用这些方法。

foreach(WebControl c in FindControl( Page, c => (c is WebControl) && 
                       ((WebControl)c).CssClass == "redRow" ))

     //Do your operation.

有关更多详细信息,SO 中已经提出了很多问题。见。

How to select an element by Class instead of ID in ASP.NET?

remove css class in code behind

您也可以使用 javascript 或 Jquery。

【讨论】:

如果你通过后面的代码来做这件事,它会非常慢。因为页面的每个方面都被视为一个控件。 @Greg:是的,你是对的,但我只能用 C# 和后面的代码回答,而且你已经用 JQuery 回答了,所以我们可以建议用户使用脚本语言,但这总是取决于根据要求.. 我知道,只是鼓励操作人员不要这样做,除非他必须这样做,但要重新考虑解决方案。【参考方案2】:

你可以用 jQuery 来实现,那就是:

$(document).ready (function (
     var elements = $(".redRow");
     $.each (elements, function(index) 
          elements[index].removeAttr("class");
     );
);

那么问题是,除非从可以锚定到事件的服务器端控件,否则您将不知道要删除哪个元素。由于 id 是每页一个。否则你会尝试解析一个 html 页面,Javascript 很可能是理想的。

【讨论】:

谁能格式化代码,手机不允许。 感谢您的回答。请告诉我如何将此类添加到一个 html 元素。我的问题已编辑。请参阅 Greg.Thanks。 抱歉,格雷格,但我们无法编辑您的答案。

以上是关于如何从整个页面asp.net c#中删除类名的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC / C#:如何从 url 中删除记录 id?

如何使用 jquery 从 asp.net 视图模型中动态删除行而不删除集合中的其余下一个对象

如何使用 C# ASP.Net 从 XML 文档中获取特定 XML 元素的列表?

C# ASP.NET Core Serilog 添加类名和方法到日志

如何在asp.net c# web应用程序中使用asp.net vb页面

如何在 C# 页面 ASP.NET Core MVC 上使用 SignInManager 和 Usermanager