このトピックでは、実行時にC1GridViewに階層化GridViewを作成する方法について説明します。
この例では、C1GridView コントロールをNwind.mdbデータベースのCustomersテーブルとOrdersテーブルに連結します。これらのテーブルのフィールドを使用して、 C1GridViewに階層化GridViewを表示します。
C1GridViewに階層グリッドを作成するには、<cc1:C1GridView ></cc1:C1GridView >
タグを次のように変更します。
ソースビュー |
コードのコピー
|
---|---|
<cc1:C1GridView id="C1GridView1" runat="server" allowvirtualscrolling="False" autogeneratecolumns="False" culture="ja-JP" datakeynames="CustomerID" datasourceid="SqlDataSource1" freezingmode="None" rowheight="19" scrollmode="None" staticcolumnindex="-1" staticrowindex="-1"> <Columns> <cc1:C1BoundField DataField="CustomerID" HeaderText="CustomerID" SortExpression="CustomerID" ReadOnly="True" Width="200" /> <cc1:C1BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" Width="200" /> <cc1:C1BoundField DataField="Country" HeaderText="Country" SortExpression="Country" Width="200" /> <cc1:C1BoundField DataField="City" HeaderText="City" SortExpression="City" Width="200" /> <cc1:C1BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName" Width="200" /> <cc1:C1BoundField DataField="ContactTitle" HeaderText="ContactTitle" SortExpression="ContactTitle" Width="200" /> <cc1:C1BoundField DataField="Address" HeaderText="Address" SortExpression="Address" Width="200" /> <cc1:C1BoundField DataField="PostalCode" HeaderText="PostalCode" SortExpression="PostalCode" Width="200" /> <cc1:C1BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" Width="200" /> <cc1:C1BoundField DataField="Fax" HeaderText="Fax" SortExpression="Fax" Width="200" /> </Columns> <Detail runat="server"> <cc1:C1DetailGridView ID="Orders" DataSourceID="SqlDataSource2" DataKeyNames="OrderID" AutogenerateColumns="false" AllowSorting="true" PageSize="5" AllowColMoving="true"> <Columns> <cc1:C1BoundField DataField="OrderID" HeaderText="OrderID" SortExpression="OrderID" Width="150" /> <cc1:C1BoundField DataField="CustomerID" HeaderText="CustomerID" SortExpression="CustomerID" Width="150" /> <cc1:C1BoundField DataField="ShippedDate" HeaderText="ShippedDate" SortExpression="ShippedDate" Width="150" /> <cc1:C1BoundField DataField="Freight" HeaderText="Freight" SortExpression="Freight" Width="150" /> <cc1:C1BoundField DataField="ShipVia" HeaderText="ShipVia" SortExpression="ShipVia" Width="150" /> </Columns> <Relation> <cc1:MasterDetailRelation DetailDataKeyName="CustomerID" MasterDataKeyName="CustomerID" /> </Relation> </cc1:C1DetailGridView> </Detail> </cc1:C1GridView> <!-- データソースを提供します --> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Customers]"></asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Orders] Where CustomerID = @CustomerID"> <SelectParameters> <asp:SessionParameter Name="CustomerID" SessionField="CustomerID" Type="string"></asp:SessionParameter> </SelectParameters> </asp:SqlDataSource> |
コードビハインドを開き、次のコードを追加します。
Page_Loadイベントの前に次のコードを追加して、階層グリッドビューを作成します。
Visual Basic |
コードのコピー
|
---|---|
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init Dim orders As New C1.Web.Wijmo.Controls. C1GridView.C1DetailGridView() orders.ID = "Orders" orders.DataSourceID = "SqlDataSource2" orders.DataKeyNames = New String() {"OrderID"} Dim ordersRelation As New C1.Web.Wijmo.Controls. C1GridView.MasterDetailRelation() ordersRelation.DetailDataKeyName = "CustomerID" ordersRelation.MasterDataKeyName = "CustomerID" orders.Relation.Add(ordersRelation) C1GridView1.Detail.Add(orders) End Sub |
C# |
コードのコピー
|
---|---|
protected void Page_Init(object sender, EventArgs e) { C1.Web.Wijmo.Controls. C1GridView.C1DetailGridView orders = new C1.Web.Wijmo.Controls. C1GridView.C1DetailGridView(); orders.ID = "Orders"; orders.DataSourceID = "SqlDataSource2"; orders.DataKeyNames = new string[] { "OrderID" }; C1.Web.Wijmo.Controls. C1GridView.MasterDetailRelation ordersRelation = new C1.Web.Wijmo.Controls. C1GridView.MasterDetailRelation(); ordersRelation.DetailDataKeyName = "CustomerID"; ordersRelation.MasterDataKeyName = "CustomerID"; orders.Relation.Add(ordersRelation); C1GridView1.Detail.Add(orders); } |
プロジェクトを実行すると、完全な機能を備えた階層グリッドアプリケーションにデータベースのOrdersおよびCustomersテーブルが表示されます。