在TabContainers中将交替行样式应用于GridView的更有效方法

时间:2012-01-04 18:19:35

标签: javascript jquery asp.net css ajax

我正在使用Ajax Control Toolkit的TabContainer页面。在每个TabPanel中都有一个GridView。

<act:TabContainer runat="server">
    <act:TabPanel runat="server">
        <asp:GridView runat="server" ...>
        </asp:GridView>
    </act:TabPanel>
      ...
    <act:TabPanel runat="server">
        <asp:GridView runat="server" ...>
        </asp:GridView>
    </act:TabPanel>
</act:TabContainer>

然后在前端,JQuery tablesorter绑定到表。在绑定tablesorter之后,行以交替方式设置样式,这是通过以下代码完成的:

var rows = $('tr.Clickable');

for (var i = 1; i < rows.length; i += 2) {
    var oddrow = 'tr.Clickable:eq(' + i.toString() + ');';
    $(oddrow).addClass('odd');
}

在某些计算机上,浏览器会返回一个警告,说明脚本需要很长时间才能完成,而这恰好是在添加上一个javascript之后发生的。我认为使用选择器:tr.Clickable:eq(n)是罪魁祸首。

我想循环遍历rows数组,并为带有和奇数索引的行执行.addClass('odd'),但rows数组的元素没有.addClass方法,因此我使用:eq选择器进行补偿。

这很有效,但是很慢,有更快的方法吗?

1 个答案:

答案 0 :(得分:3)

使用:odd选择器

$('tr.Clickable:odd').addClass('odd');