【问题标题】:Hiding GridView columns in asp.net 2.0在 asp.net 2.0 中隐藏 GridView 列
【发布时间】:2017-12-15 16:08:52
【问题描述】:

我有一个gridview,我通过从我的数据库连接创建一个填充该表的数据表然后将数据绑定到我的网格来填充它。我没有使用自动生成列,但我正在使用自动生成选择。通过搜索,我发现了这个建议。

    gridview.Columns[index].Visible=false;

当我添加此行时,当我单击 Web 应用程序中的按钮时,会引发索引超出范围异常。

我在将 DataTable 绑定到 GridView 后使用了该行,但我想隐藏一行以用于不同的目的,因此我需要从我的存储过程中保留该信息。

我还尝试使用<columns> 选项手动添加列,但它只是在现有列之上添加列。

我对 Web 编程有点陌生,并且选择自动生成选择是一个选项,但对我没有多大帮助,因为我必须花费大量时间来学习重新编码我不知道的表的选择行功能有。到目前为止,我所阅读的所有内容都处理了自动生成列问题,但我没有使用它,如果自动生成选择导致同样的问题。我可能别无选择。

【问题讨论】:

  • 目前还不清楚您的问题到底是什么。
  • 很抱歉,我没有补充说我得到的索引超出范围错误。我改变了我的问题以反映这一点。我基本上需要能够在gridview 中隐藏一行。如果仍然不清楚,我会尝试发布我的一些代码。
  • 在你要编辑你的问题之前,隐藏一行是什么意思,它应该用display:none呈现给客户端还是根本不呈现(@987654324 @)?您是否需要在客户端访问其中的控件?请注意,您始终可以在服务器端访问控件及其值,即使它们不可见。您还应该在您试图隐藏该行的位置显示您的按钮单击处理程序。

标签: c# asp.net-2.0


【解决方案1】:

隐藏一行需要绑定到 OnRowDataBound 事件并设置样式。

看看这个答案:Hide a gridView row in asp.net

【讨论】:

    【解决方案2】:

    对于这个特殊问题,我没有意识到 AutoGenerateColumns 默认设置为 true。无论是默认情况下还是因为我使用了 AutogenerateSelect 控件,我都不完全确定,但我的解决方法是将 AutogenerateColumns 显式设置为 False,然后从控件中的 columns 元素填充网格。感谢梅洛的回复,你让我得到了我需要的答案。

    【讨论】:

      猜你喜欢
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      相关资源
      最近更新 更多