2004.11.25

datagridのタイトルを動的に変更したい

「datagridのタイトルのテキストを変更したい!!」
「コードは今回は隠し項目で作成したい!!」
という要望が出てくる場面に出くわす事もあると思います。

まず、テキストを動的に変更したい場合ですが、
DataBindをするに変えたい箇所のテキストに値を渡す事で解消されます。
例えば0行目に今日の日付を出したい場合以下のようになります。
MyDataGrid.Columns(0).HeaderText = Format(NOW, "yyyy年MM月dd日(ddd)")

他にも、ItemDataBoundの処理の時で設定する事も可能です。
こちらのやり方は隠し項目を持たせるやり方とあわせて紹介したいと思います。

タイトル部分を変更させるには、e.Item.ItemType =ListItemType.Header時に処理を書けば解決できます。
例えば0行目にコードを隠しで持っておいて1行目に日付をいれたい以下のようになります。
Private Sub MyDataGrid_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles MyDataGrid.ItemDataBound

Select Case e.Item.ItemType
'データ部分の処理
Case ListItemType.Item, ListItemType.AlternatingItem
'コードは非表示
e.Item.Cells(0).Visible = False
'ヘッダー部分の処理
Case ListItemType.Header
'コードは非表示
e.Item.Cells(0).Visible = False
e.Item.Cells(1).Text = Format(NOW, "yyyy年MM月dd日(ddd)")
End Select
End Sub
これで、データグリッド時に動的な処理が出来るようになります。
お試しください。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
ntakayama