- - PR -
ヘッダーに行を挿入した後に編集する方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-10-28 16:08
VB.NETを使ってASP.NET Webアプリケーションを作成しています。
以下のようにヘッダーに行を追加しています。 [ ][ DDD ] <--挿入したヘッダー行 [A][B][D][D][D] <--元のヘッダー行 開閉ボタンを押すことにより、 [B]を展開できるようにしています。 ●閉じているとき [ ][ DDD ] <--挿入したヘッダー行 [A][B][D][D][D] <--元のヘッダー行 ●展開したとき [ ][ DDD ] <--挿入したヘッダー行 [A][B][b][b][D][D][D] <--元のヘッダー行 この処理をItemCreatedイベントを使わずに実行していたのですが、 ItemCreatedイベントを使った方が綺麗なので変更しようと思っています。 そこで、一度挿入したヘッダー行のColumnSpanを変更したいのですが、 どのように参照してよいのかわかりません。 ご教授いただけないでしょうか。よろしくお願いします。 --ヘッダー行挿入------------------------------------------------------------ Private Sub DtGrid_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DtGrid.ItemCreated If e.Item.ItemType = ListItemType.Header Then Dim newCell1 As TableCell = New TableCell Dim newCell2 As TableCell = New TableCell Dim newHeader As DataGridItem = New DataGridItem(-1, -1, ListItemType.AlternatingItem) newCell1.ColumnSpan = 2 newCell2.ColumnSpan = 3 '[DDD]に当たる部分 newCell1.Text = "" newCell2.Text = "DDD" newHeader.Cells.Add(newCell1) newHeader.Cells.Add(newCell2) newHeader.Cells(1).HorizontalAlign = HorizontalAlign.Center 'ページ機能もありますので挿入する場所は1にしております。 DtGrid.Controls(0).Controls.AddAt(1, newHeader) End If End Sub [ メッセージ編集済み 編集者: がんばり屋 編集日時 2004-10-28 16:12 ] |
|
投稿日時: 2004-10-28 16:25
newHeaderをprivateな変数に覚えておけばよいのでは?
|
|
投稿日時: 2004-10-28 16:33
返答ありがとうございます。
フォームにラベルを作成しております。 開閉ボタンを押したイベントで結合する列数を入力しています。 しかし開閉ボタンを押したイベントではDatagridにバインドしておりませんので ItemCreatedイベントは実行されていないようです。 そこで、既に挿入されたヘッダーの一つ目のセルのColumnSpanを 展開時なら ColumnSpan = 4 閉じる時なら ColumnSpan = 2 に変更したいのです。 |
|
投稿日時: 2004-10-28 16:42
すみません、間違いです。↓
>しかし開閉ボタンを押したイベントではDatagridにバインドしておりませんので >ItemCreatedイベントは実行されていないようです。 開閉ボタンを押した時のイベントはItemCreatedイベントが実行された後に 実行されますので、ColumnSpanを変更する必要があるのです。 ColumnSpanに設定する値はフォームに作成しているラベルに入力しておりますので それを代入したいのですが、方法がわかりません。 |
|
投稿日時: 2004-10-29 14:47
トレースを有効にして色々と試していると解決できました。
お騒がせして申し訳ありません。。。 -------------------------------------------------- '挿入したヘッダーの再設定 Dim cell1 As TableCell = DtGrid.Controls(0).Controls(1).Controls(0) cell1.ColumnSpan = 4 '<--展開した場合(閉じている場合は2) |
1