- PR -

受注/受注明細を同時に表示するには

1
投稿者投稿内容
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2002-04-23 23:24
複数の DataGrid を連動させるには

DEMO
をクリックするとソースコードと実行結果が表示されます。

左側のフレームにはソースコード、右側のフレームには得意先別の受注情報が表示されます。
得意先IDをクリックすると、受注ヘッダーと受注明細が表示されます。

複数の DataGrid を連動させるには!

親子(Master/Detail)の関係にあるDataGridを連動させるには、子のDataGridを実行時にダイナミックに生成して親のTemplateColumnに埋め込みます。


コード:

Sub dgrdCustomers_ItemDataBound(s As object, e As DataGridItemEventArgs)
If e.Item.ItemType = ListItemType.Item XOr
e.Item.ItemType = ListItemType.AlternatingItem Then

Dim dgrdOrders As New DataGrid ' 受注情報のDataGrid生成

With dgrdOrders
.GridLines = GridLines.Horizontal
.ShowHeader = True
.AutoGenerateColumns = False

Dim bc As New BoundColumn ' Order ID の BoundColumn 生成
With bc
.HeaderText = "ID"
.DataField = "OrderID"
End With
.Columns.Add(bc) ' DataGridのカラム1に追加

' 同様の手順でBoundColumnを生成してDataGridに追加する

Dim dvwOrders As DataView = dstNorthwind.Tables("Orders").DefaultView
dvwOrders.RowFilter = "CustomerID=" & e.Item.Cells(0).Text
.DataSource = dvwOrders ' 受注情報のDataViewをバインドする
.DataBind()
End With
e.Item.Cells(3).Controls.Add(dgrdOrders) ' 得意先のDataGridのカラム4に追加
End If
End Sub


Happy Programming!
Akio Kasai

[ メッセージ編集済み 編集者: Dr ADO.NET 編集日時 2002-04-24 04:58 ]
1

スキルアップ/キャリアアップ(JOB@IT)