DataGridでAutoGenerateColumns="true"を指定すると、DataBindした際に自動的に列を作成して便利なのだが、
この列に幅、右寄せ左寄せ等の設定を行う場合はどうしたらよいのか?と少し悩んだので調べてみました。
結構調査に時間がかかったのですが、解決方法は意外とシンプルでした。
その解決方法は、DataGridのItemDataBoundイベントでe.Item.Cells(0)のプロパティに値を設定するだけでした。
(この場合Cells(0)というのは自動作成される列の1列目を指しています。)
例:
○幅を指定する場合
e.Item.Cells(0).Width = System.Web.UI.WebControls.Unit.Pixel(50)
○列の文字出力を右寄せにする場合
e.Item.Cells(0)HorizontalAlign = HorizontalAlign.Right
例に従って、設定を行いたい列を指定してプロパティに値を指定すると意図した通りの画面が出力されます。