ASP.NET の同等のコード:
var data = getDataFromDB();
telerikGrid.DataSource=data;
telerikGrid.DataBind();
そして、aspx ページで次のように定義されたグリッドビューを作成します。
<telerik:radgridview id="telerikGrid" runat="server" />
アップデート:
XML を解析してオブジェクトを作成できると言うので、カスタム ビジネス オブジェクトを使用した例を示します。
以下のようなクラス構造を持つ:
public class Employee
{
public string EmployeeName {get;set;}
//... And more properties
Public Child[] Children {get;set;}
}
public class Child
{
public string Name {get;set;}
//and more properties
}
XML を解析してEmployee[]
、次のような方法でグリッドに表示する を作成するとします。
-------------------------------
| Employee Name | Children |
+-----------------------------+
| John | Peter |
| | Charles |
+----------------+------------+
| Michael | Anna |
+-----------------------------+
マークアップは次のようになります。
<telerik:radgridview id="telerikGrid" runat="server" OnItemDataBound="telerikGrid_ItemDataBound">
<MasterTableView AutoGenerateColumns="false">
<Columns>
<telerik:GridBoundColumn DataField="EmployeeName" HeaderText="EmployeeName">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn>
<ItemTemplate>
<telerik:radgridview runat="server" id="gridEmpChildren">
<MasterTableView AutoGenerateColumns="false">
<Columns>
<telerik:GridBoundColumn DataField="Name" HeaderText="Children">
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
</telerik:radgridview>
</ItemTemplate>
<telerik:GridTemplateColumn>
</MasterTableView>
</telerik:radgridview>
ハンドラーを ItemDataBound イベントに追加し、そのように実装します (このハンドラーを定義する上記のマークアップに注意してください)。
protected void telerikGrid_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
RadGridView childrenGrid = (RadGridView)item.FindControl("gridEmpChildren");
childrenGrid.DataSource= item["Children"];//See class Employee
childrenGrid.DataBind();
}
}
さて、上記の例に表示されているようにグリッドをレンダリングする完全なサンプル実装は次のとおりです。
//Sample data
Employee[] employees = new Employee[] {
new Employee{
EmployeeName="John",
Children= new Child[]{
new Child{Name="Peter"},
new Child{Name="Charles"}
}
}
,new Employee{
EmployeeName="Michael",
Children=new Child[]{
new Child{Name="Anna"}
}
}
};
telerikGrid.DataSource=employees;
telerik.DataBind();
注: コードはどれもテストされていません。すぐに機能しない場合は、余裕を持ってください。これに近いことは間違いない。