ASP.NET 中的等效代码:
var data = getDataFromDB();
telerikGrid.DataSource=data;
telerikGrid.DataBind();
你将在 aspx 页面上定义你的 gridview:
<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();
注意:没有任何代码经过测试,如果它不能立即工作,请让我放松一下。它肯定接近这个。