显示在空的数据行的GridView不可见的行

时间:2011-08-12 19:39:35

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

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

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

3 个答案:

答案 0 :(得分:1)

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

您是否可以发布实现该功能的方式以显示空行?

答案 1 :(得分:1)

如果有人仍在搜索此问题的简单答案,我已发布此内容

您可以使用GridView的OnRowCreated事件,并将空行的columnspan值指定为可见列的数量。请参阅以下示例代码

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

答案 2 :(得分:0)

在我的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);
}