0

ねえ、私は自分のデータグリッドを印刷可能にしようとしています。これを行うために、最後の4列を非表示にしようとしています。クリックしたときに表示したい印刷可能なボタンがあり、最後の4列を非表示にします。私はこれまでこの仕事をすることができませんでした。

私が試してみました:

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

 ProductsGrid.Columns[6].Visible = false;

注:これらの列にはデータが含まれています。おそらくそれは私の問題の一部です。また、列のヘッダーを非表示にする必要があります。

ヒントをありがとう。

編集:ボタンクリックコマンドでそれらを非表示にしています。生成された列を使用していないので、falseに設定されていると思います。私はこの問題に少しうんざりして仕事を辞め、来週の半ばまで戻ってこないので、それまで解決策を見つけるのを延期しなければならないかもしれません。みなさんのコメントありがとうございます、すぐに見直します。申し訳ありませんが、これ以上フィードバックをタイムリーに提供することはできません。

x2の編集:ある種のポストバックなどで処理する必要がありますか?

4

1 に答える 1

2

AutoGenerateColumns = "True"がある場合、自動生成されたバインドされた列フィールドはColumnsコレクションに追加されないため、visible=Falseを設定するだけでは非表示にすることはできません。

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に設定されている場合は、グリッドを再バインドせずに列を非表示にするだけで済みます。

于 2010-11-05T22:56:34.950 に答える