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

时间:2016-12-21 03:30:06

标签: c#

我的代码就像

<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");

2 个答案:

答案 0 :(得分:0)

您可以使用jQuery实现这一目标,即:

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

然后问题,除非你可以锚定到事件的服务器端控件,否则你不知道要删除哪个元素。因为id是每页一个。否则你会试图解析一个html页面,Javascript很可能是理想的。

答案 1 :(得分:0)

正如CRise评论的那样,你必须循环所有的网页控件,找到你想要的每个控件。

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

让我们创建一个实用工具方法。

function successHandler(data, textStatus, jqXHR) {
   // you are using json as dataType so you may need to get a key from data object
   jj = '<input class ="submitAsset" type="button" value="'+ data
+'">';
   jQuery("#example").append(jj); 
}

jQuery("#example").on("click", '.submitAsset',function() {                     
    alert("clicked");
}); //function click

然后在您想要检查班级的任何地方调用这些方法。

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;
}

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

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

remove css class in code behind

您也可以使用JavaScript或Jquery。