1

ピボットテーブルを生成するストアドプロシージャをSQLで作成しました。このデータを表示するために、ASP.NETでGridViewを正常に作成しました。

ただし、一部の列見出しはデータから動的に生成され(AutoGenerateColumns = True)、それらの列見出しは単なる日付であるため、テーブルが生成されるたびに外観が異なります。

列見出しの日付形式が間違っていることを除いて、これはすべて正常に機能します。SQLが出力で日付を生成する方法を変更できることは知っていますが、そのようにはしたくありません。Webページから制御したい。

これが難しいとは思いませんでした。ヘッダー行のセルを見つけてデータ文字列の形式を変更するという方針に沿って何かできると思いました。問題は、コードをGridViewのDataBoundイベントまたはRowDataBoundイベントのどちらに配置しても、ヘッダー行のセルが空であるように見えるため、再フォーマットできないことです。DataBoundイベントの後でヘッダーが読み込まれるようですが、いつ、どのようにトラップするかはわかりません。

誰か助けてもらえますか?

4

1 に答える 1

0

「RowCreated」イベント中に列見出しを割り当てることができます。方法は次のとおりです。

Private Sub GridView1_RowCreated(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
    e.Row.Cells(0).Text = Format(Convert.ToDateTime(e.Row.Cells(0).Text), "yyyy-MM-dd")
    e.Row.Cells(1).Text = Format(Convert.ToDateTime(e.Row.Cells(1).Text), "yyyy-MM-dd")
End Sub

動的/自動生成された列を持つ GridView に対してこれをテストしたところ、うまくいくようです。列のインデックスはゼロであることに注意してください。また、ヘッダー セルのテキストを設定するために行番号を指定する必要はありません。

于 2012-06-26T22:27:06.467 に答える