<asp:datagrid id="dataGrid1"
runat="server"
width="792px"
autogeneratecolumns="False"
cellpadding="0"
pagerstyle-mode="NumericPages"
pagerstyle-pagebuttoncount="20"
pagesize="20"
allowpaging="True"
allowsorting="True"
<Columns>
<!-- First Column With ID as hidden column -->
<asp:BoundColumn DataField="ID" Visible="False" HeaderText="ID">
<HeaderStyle Width="190px" HorizontalAlign="Center" >
</HeaderStyle>
</asp:BoundColumn>
<!-- Second Column defined as Check Box in a Template Column -->
<asp:TemplateColumn HeaderText="Select" HeaderStyle-Width="40px" >
<ItemStyle Width="40px"></ItemStyle>
<ItemTemplate>
<input type="checkbox" runat="server" id="chkSelected"
checked ='<% # DataBinder.Eval(Container.DataItem,
"Selected") %>' />
</ItemTemplate>
</asp:TemplateColumn>
<!-- Third Column bound to the Field Description -->
<asp:BoundColumn DataField="Description"
SortExpression="Description"
HeaderText="Description">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle Wrap="True" Width="2000px"></ItemStyle>
</asp:BoundColumn>
<!-- Fourth Column a Numeric column for displaying Currency
with DataFormat -->
<asp:BoundColumn DataField="Amount" SortExpression="Amount"
ReadOnly="True"
HeaderText="Amount"
DataFormatString="{0:$#,##0.0000;($#,##0.0000)}">
<HeaderStyle HorizontalAlign="Center"
Width="70px"></HeaderStyle>
<ItemStyle HorizontalAlign="Right" Wrap="False"></ItemStyle>
</asp:BoundColumn>
<!-- Fifth Column That displays the child record of the
row inside a Repeater control -->
<asp:TemplateColumn HeaderText="Child Data"
HeaderStyle-HorizontalAlign="Center">
<ItemStyle HorizontalAlign="Left" Wrap="True"></ItemStyle>
<ItemTemplate>
<asp:Repeater ID="rptChild" runat = "server"
DataSource = '<%# ((System.Data.DataRowView)
Container.DataItem).Row.
GetChildRows("relationParentChild") %>'>
<ItemTemplate>
<asp:LinkButton ID="linkChild" Runat="server"
CommandArgument=<%# DataBinder.
Eval(Container.DataItem, "["ChildID"]")%>
OnClick="linkChild_Click">
<%# DataBinder.Eval(Container.DataItem,
"["ChildFieldNameToDisplay"]")%>
</asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle PageButtonCount="20" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
private void Page_Load(object sender, System.EventArgs e)
{
System.Data.DataSet ds = Get Data Set();
// This Data Set should be populated with two
// tables one for the Parent Row Data and the
// second for the child data to be displayed
// in the repeater control
ds.Relations.Add("relationParentChild",
ds.Tables[0].Columns["ID"],
ds.Tables[1].Columns["FKID"]);
DataView dv = ds.Tables[0].DefaultView;
dataGrid1.DataSource = dv;
}