0

嘿,我正在尝试使我的数据网格可打印。为此,我试图隐藏最后 4 列。我有一个可打印的按钮,我想在单击时使最后 4 列消失。到目前为止,我还没有完成这项工作。

我努力了:

 ProductsGrid.Columns[6].ControlStyle.Width = -1;

 ProductsGrid.Columns[6].Visible = false;

注意:这些列中确实有数据。也许这是我问题的一部分。另外,我需要列的标题消失。

感谢您的任何提示。

编辑:我在我的按钮单击命令中使它们不可见。我没有使用生成的列,所以我认为它设置为 false。我有点厌倦了这个问题并离开了工作,直到下周中旬才会回来,所以我可能不得不推迟找到解决方案。谢谢大家的评论,我会尽快看的。抱歉,我无法及时提供更多反馈。

编辑 x2:我是否必须以某种回发或其他方式处理它?

4

1 回答 1

2

如果您有 AutoGenerateColumns="True",那么通过简单地设置 visible=False 使它们不可见是行不通的,因为自动生成的绑定列字段不会添加到 Columns 集合中。

VB.Net,但我想你明白了:

Private Sub setPrinterView()
  For Each tr As TableRow In DirectCast(Me.GridView1.Controls(0), Table).Rows
      For i As Int32 = 1 To 4
          If tr.Cells.Count - i < 0 Then Exit For
          tr.Cells(tr.Cells.Count - i).Visible = False
      Next
   Next
End Sub

如果 AutogenerateColumns 设置为 False,您只需使 Columns 不可见,无需重新绑定 Grid。

于 2010-11-05T22:56:34.950 回答