Gridview中的可扩展和可折叠列

时间:2012-08-08 13:52:56

标签: asp.net gridview

我在asp.net中使用Gridview。列以这种方式:4月,5月,6月,1月,7月,8月,9月,2月,10月,11月,12月,3月,1月,2月,3月,4月。 我想显示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仍然可见。
  6. 再次点击任何展开的列应该按照之前的那样折叠

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

1 个答案:

答案 0 :(得分:0)

使用jQuery。将CssClass应用于表示的每个列。它不一定是一个有效的css元素,只是一个名字。

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

然后,您可以使用包含链接的Q1列的标题模板。链接的click事件应该调用一个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');" ... />

显然需要调整以适应您的特定要求,并且需要在可能发生故障的地方进行一些空检查。如果你把它当作伪代码,它应该让你朝着正确的方向前进。