【问题标题】:How to force refresh of GridView?如何强制刷新 GridView?
【发布时间】:2012-12-15 20:06:18
【问题描述】:

我想要的刷新类型本身并不处理数据。

这是场景: 我有一个包含 3 列 A、B 和 C 的网格视图。 用户可以单击复选框 a、b 和 c 以使相应的列可见或不可见。 [为了清楚起见,这些复选框在 gridview 之外。]

现在我希望在单击每个复选框后立即刷新网格视图,仅显示选定的列。我该怎么做?

【问题讨论】:

    标签: asp.net gridview checkbox


    【解决方案1】:

    假设您在表格(网格)中的每一列都有一个复选框,您可以在 jQuery 中编写如下内容:

    $(function() {
        $('input:checkbox').change(function() {
            //get a reference to the corresponding table column
            var $col = $('<#%=grid.ClientID %>' + ' td:nth-child(' + $(this).val() + ')');
            if (this.checked) $col.hide();
            else $col.show();
        });
    });​
    

    并且对应的复选框有一个值设置为表中的列索引。例如:

    <input type="checkbox" value="1" /><-- hides first column in grid-->
    <input type="checkbox" value="2" /><-- hides second column in grid-->
    <input type="checkbox" value="3" /><-- hides third column in grid-->
    

    可能也适合您的更短/更简单的版本是:

    $(function() {
        $('input:checkbox').change(function() {
            var $col = $('table ' + 'td:nth-child(' + $(this).val() + ')');
            $col.toggle();
        });
    });​
    

    jsfiddle.

    更新 - C# 版本

    protected void Check_Clicked(Object sender, EventArgs e) 
      {
         CheckBox theOneClicked= (sender as CheckBox);
         if(theOneClicked.ID=="checkbox1")
             myGrid.Columns[0].Visible=false;
         else if(theOneClicked.ID=="checkbox2")
             myGrid.Columns[1].Visible=false;
         else if(theOneClicked.ID=="checkbox3")
             myGrid.Columns[2].Visible=false;
      }
    

    【讨论】:

    • 我想使用 asp.net,而这段代码似乎不允许我在后面的 C# 代码中这样做。我错了吗?谢谢。
    • @user763554 将添加一个相同的 C# 版本。
    • @user763554 添加了 C# 版本,但如果我是你,我会在 Jquery 中完成,除非你除了隐藏一列之外还需要做其他事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2015-11-25
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多