【问题标题】:GridView Non-Visible Row Showing up in Empty Data RowGridView 不可见行显示在空数据行中
【发布时间】:2011-10-26 02:31:45
【问题描述】:

我有一个自定义的 GridView,它将默认显示 6 行数据(无论有多少行),底部有一个寻呼机。此 Gridview 用于许多独特的页面。在一个页面上,我有一个我需要的设置为隐藏的列(宽度 0 和 Css-Display=none)——程序的另一部分取决于它的设置方式。

该列在有数据的行中不可见(因为它不应该如此)。但是,该列在空行中显示为空列(应该不可见)。我将如何让 EMPTY 行也隐藏 COLUMN?

【问题讨论】:

  • 你想隐藏一行还是一列?
  • 只是空行中的一列。
  • 而且该列也隐藏在有数据的行上?抱歉,只是想了解一下问题所在。
  • 我将进行编辑以使其更清晰。
  • 好的,我现在明白了。如果永远不应该显示此列,为什么它必须是一列?你需要列中的值还是什么?

标签: c# asp.net css gridview hidden-field


【解决方案1】:

听起来您有一些自定义实现来显示空行(因此始终显示 6 个),它可能使用与常规行不同的模板,或者可能根本没有模板。问题很可能是您的空行定义未将 width 和 css 属性应用于隐藏列。

您能否发布您如何实现显示空行的功能?

【讨论】:

  • 你是对的。在这些空行的代码中,我没有注意到一些自定义实现。
【解决方案2】:

在我的 GridView_DataBound 函数中,为存在的每一列生成单元格——它是如何填充空单元格的。我添加了 if 语句来检查该字段是否应该被隐藏,并确保自动生成的单元格也被隐藏。

foreach (DataControlField field in _gridView.Columns)
{
    TableCell cell = new TableCell();
    cell.Text = " ";

    if (field.ItemStyle.CssClass == "hideGridColumn")
        cell.Visible = false;

    row.Cells.Add(cell);
}

【讨论】:

    【解决方案3】:

    如果有人还在为这个问题寻找简单的答案,我已经发布了这个

    您可以使用 GridView 的 OnRowCreated 事件并将空行的列跨度值指定为可见列数。请看下面的示例代码

    protected void grd_RowCreated(object sender, GridViewRowEventArgs e)
            {
                 if (e.Row.RowType == DataControlRowType.EmptyDataRow)
                    e.Row.Cells[0].ColumnSpan = 7; // number of visible columns;
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      相关资源
      最近更新 更多