本示例主要演示如何利用两个 ASPxGridView控件来显示主从数据。
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
protected
void
Page_Load(
object
sender, EventArgs e) {
if
(Session[
"CategoryID"
] !=
null
) {
detailGrid.DataSource = dsProducts;
detailGrid.DataBind();
}
}
protected
void
detailGrid_CustomCallback(
object
sender,
DevExpress.Web.ASPxGridView.ASPxGridViewCustomCallbackEventArgs e) {
object
masterKeyValue = masterGrid.GetRowValues(Convert.ToInt32(e.Parameters),
"CategoryID"
);
Session[
"CategoryID"
] = masterKeyValue;
detailGrid.DataSource = dsProducts;
detailGrid.PageIndex = 0;
detailGrid.DataBind();
}
|
VB
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Protected
Sub
Page_Load(
ByVal
sender
As
Object
,
ByVal
e
As
EventArgs)
If
Session(
"CategoryID"
) IsNot
Nothing
Then
detailGrid.DataSource = dsProducts
detailGrid.DataBind()
End
If
End
Sub
Protected
Sub
detailGrid_CustomCallback(
ByVal
sender
As
Object
,
ByVal
e
As
DevExpress.Web.ASPxGridView.ASPxGridViewCustomCallbackEventArgs)
Dim
masterKeyValue
As
Object
= masterGrid.GetRowValues(Convert.ToInt32(e.Parameters),
"CategoryID"
)
Session(
"CategoryID"
) = masterKeyValue
detailGrid.DataSource = dsProducts
detailGrid.PageIndex = 0
detailGrid.DataBind()
End
Sub
|
Asp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<dxwgv:ASPxGridView ID=
"masterGrid"
runat=
"server"
AutoGenerateColumns=
"False"
DataSourceID=
"dsCategories"
KeyFieldName=
"CategoryID"
Width=
"550px"
>
<SettingsBehavior AllowFocusedRow=
"True"
/>
<SettingsText Title=
"Categories"
/>
<Columns>
<dxwgv:GridViewDataTextColumn FieldName=
"CategoryID"
ReadOnly
=
"True"
VisibleIndex=
"0"
>
<EditFormSettings Visible=
"False"
/>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName=
"CategoryName"
VisibleIndex=
"1"
>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName=
"Description"
VisibleIndex=
"2"
>
</dxwgv:GridViewDataTextColumn>
</Columns>
<Settings ShowTitlePanel=
"True"
/>
<ClientSideEvents FocusedRowChanged="function(s, e) {
dGrid.PerformCallback(s.GetFocusedRowIndex());
}" />
</dxwgv:ASPxGridView>
<br/>
<dxwgv:ASPxGridView ID=
"detailGrid"
runat=
"server"
Width=
"550px"
AutoGenerateColumns=
"False"
ClientInstanceName=
"dGrid"
KeyFieldName=
"ProductID"
OnCustomCallback=
"detailGrid_CustomCallback"
>
<SettingsText Title=
"Products"
/>
<Settings ShowTitlePanel=
"True"
/>
<Columns>
<dxwgv:GridViewDataTextColumn FieldName=
"ProductID"
ReadOnly
=
"True"
Visible=
"False"
VisibleIndex=
"0"
>
<EditFormSettings Visible=
"False"
/>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName=
"ProductName"
VisibleIndex=
"0"
>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName=
"UnitPrice"
VisibleIndex=
"1"
>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName=
"UnitsInStock"
VisibleIndex=
"2"
>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName=
"QuantityPerUnit"
VisibleIndex=
"3"
>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName=
"CategoryID"
Visible=
"False"
VisibleIndex=
"5"
>
</dxwgv:GridViewDataTextColumn>
</Columns>
</dxwgv:ASPxGridView>
<asp:AccessDataSource ID=
"dsCategories"
runat=
"server"
DataFile=
"~/App_Data/nwind.mdb"
SelectCommand=
"SELECT [CategoryID], [CategoryName], [Description] FROM [Categories]"
>
</asp:AccessDataSource>
<asp:AccessDataSource ID=
"dsProducts"
runat=
"server"
DataFile=
"~/App_Data/nwind.mdb"
SelectCommand="SELECT [ProductID], [ProductName], [CategoryID], [UnitPrice], [UnitsInStock],
[QuantityPerUnit] FROM [Products] WHERE ([CategoryID] = ?)">
<SelectParameters>
<asp:SessionParameter Name=
"CategoryID"
SessionField=
"CategoryID"
Type=
"Int32"
/>
</SelectParameters>
</asp:AccessDataSource>
|
结果如下: