-1

我在 asp.net 中使用 Gridview。列是这样的:四月,五月,六月,第一季度,七月,八月,九月,第二季度,十月,十一月,十二月,第三季度,一月,二月,三月,第四季度。我想如下显示gridview:

  1. 最初只有列 Q1、Q2、Q3、Q4 应该是可见的。
  2. 如果我点击 Q1,Apr,May,Jun 列应该是可见的。Q2、Q3、Q4 仍然可见。
  3. 如果我点击 Q2,Oct,Nov,Dec 列应该是可见的。Q1、Q3、Q4 仍然可见。
  4. 如果我点击 Q3,Oct、Nov、Dec 列应该是可见的。Q1、Q2、Q4 仍然可见。
  5. 如果我点击 Q4,Jan,Feb,Mar 列应该是可见的。Q1、Q2、Q3 仍然可见。

再次单击任何展开的列应该像以前一样折叠它

有人指导我如何实现这一目标吗?

4

1 回答 1

0

使用 jQuery。将 CssClass 应用于表示的每个列。它不必是一个正常运行的 css 元素,只是一个名称。

<asp:BoundField ID="Apr" CssClass="Q1" .... />

然后,您可以为包含链接的 Q1 列使用标题模板。链接的单击事件应该调用一个 jQuery,该 jQuery 调用一个方法来切换hide()show()匹配类中的元素。这将是一个功能想法:

function ToggleColumn(colID)
{
    var elements = $('.' + col);
    if (elements[0].is(":visible"))
    {
        elements.hide();
    } else {
        elements.show();
    }

    return false;
}

调用它的链接是:

<asp:LinkButton ID="lnkQ1" OnClientClick="return ToggleColumn('Q1');" ... />

这显然需要根据您的特定要求进行调整,并且需要对可能发生故障的地方进行一些空检查。如果您将其视为伪代码,它应该会让您朝着正确的方向前进。

于 2012-08-08T14:13:49.350 回答