如何使用Javascript更改ASP.NET Gridview的cssClass?

时间:2012-10-11 21:33:19

标签: c# javascript asp.net gridview

我想访问asp.net gridview的cssClass属性并使用Javascript更改它。

我知道我可以访问其他类似的样式属性:

document.getElementById('<%=GridView1.ClientID%>').style

但我想特别改变cssClass。这是我在尝试第一个建议后所拥有的。它尚未发挥作用。我在一个函数的第一部分放置了你给我的那条线,该函数突出显示了一个选定的行,以便所有先前突出显示的行将恢复为正常样式。想法?

function ChangeRowColor(rowID) {
    document.getElementById('<%=gvxTaskList.ClientID%>').className += "tablestyle";

    var color = document.getElementById(rowID).style.backgroundColor;
    if (color != 'yellow')
        oldColor = color;
    if (color == 'yellow')
        document.getElementById(rowID).style.backgroundColor = oldColor;
    else document.getElementById(rowID).style.backgroundColor = 'yellow';
}                  

3 个答案:

答案 0 :(得分:3)

试试这个

document.getElementById('<%=GridView1.ClientID%>').className = "class";

并添加到现有的课程

document.getElementById('<%=GridView1.ClientID%>').className += " class";

更新

function addClass()
{
    var exClass = document.getElementById('<%=GridView1.ClientID%>').className;

    if(exClass.indexOf('className') == -1)  //check that the class does not already exist
    {
        if(exClass.length == 0)
           document.getElementById('<%=GridView1.ClientID%>').className += 'className'; //add
        else
           document.getElementById('<%=GridView1.ClientID%>').className += ' className'; //append
    }
}

答案 1 :(得分:2)

asp.net中的cssClass只会转换为客户端html中的类,例如,.net端的代码如下:

<asp:datagrid id="myGrid" cssClass="myClass" runat=server></asp:datagrid">

将 - 大致 - 转化为:

<table id="someRandomIdOrClientIdThatYouSet" class="myClass"><tr>....</tr></table>

所以要实现你想要的,在javascript中,你可以用:

来改变它
document.getElementById('<%=GridView1.ClientID%>').className = "newClassName";

或使用像jQuery这样的库:

$('#<%=GridView1.ClientID%>').addClass("newClassName")

答案 2 :(得分:1)

  document.getElementById('<%=GridView1.ClientID%>').className += "class";