2011-08-12 61 views
0

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

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

+0

你想隐藏一行或一列吗? –

+0

只是空行内的一列。 – ImGreg

+0

并且该列还隐藏在数据行上?对不起,只是想了解问题。 –

回答

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); 
} 
1

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

你可以发布你如何实现功能显示空行吗?

+0

你说得对。有些自定义实现我没有注意到这些空行的代码。 – ImGreg

0

我已经发布了这一点,如果任何一个仍然在寻找简单的答案对于这个问题

可以使用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; 
     }