0

I have a radgrid that contains another one inside its DetailItemTemplate ; as shown in code below :

<telerik:RadGrid ID="Radgrid1" runat="server" AutoGenerateColumns="false"
              OnNeedDataSource="Radgrid1_NeedDataSource" OnItemDataBound="Radgrid1_ItemDataBound">
                    <MasterTableView AutoGenerateColumns="false" DataKeyNames="ID" GroupLoadMode="Client">
                        <Columns>
                      <telerik:GridBoundColumn HeaderText="Name" DataField="NAME" />
                       </Columns>
                        <DetailItemTemplate>
                            <telerik:RadGrid ID="Radgrid2" runat="server" AutoGenerateColumns="false">
                            <MasterTableView AutoGenerateColumns="false" DataKeyNames="Number"
                                                        GroupLoadMode="Client">
                                                        <Columns>
                                                            <telerik:GridBoundColumn HeaderText="Number" DataField="NUMBER" />
                                                          </Columns>
                                                    </MasterTableView>
                                                </telerik:RadGrid>
                                          </DetailItemTemplate>
                    </MasterTableView>
                </telerik:RadGrid>

what's the best method to bind DataTable to radgrid2 as DataSource ??

4

1 回答 1

0

请尝试使用以下代码片段。

ASPX

<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource"
        AllowPaging="true" AllowSorting="true" OnDetailTableDataBind="RadGrid1_DetailTableDataBind">
        <MasterTableView DataKeyNames="ID" CommandItemDisplay="Top">
            <Columns>
                <telerik:GridEditCommandColumn>
                </telerik:GridEditCommandColumn>
                <telerik:GridBoundColumn DataField="ID" UniqueName="ID" HeaderText="ID"></telerik:GridBoundColumn>
            </Columns>
            <DetailTables>
                <telerik:GridTableView Name="Child1">
                    <Columns>
                        <telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="Name"></telerik:GridBoundColumn>
                    </Columns>
                </telerik:GridTableView>
            </DetailTables>
        </MasterTableView>
    </telerik:RadGrid>

ASPX.CS

protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    dynamic data1 = new[] {
           new { ID = 1, Name ="Name_1",Customdate = DateTime.Now},
           new { ID = 2, Name = "Name_2",Customdate = DateTime.Now},
           new { ID = 3, Name = "Name_3",Customdate = DateTime.Now},
           new { ID = 4, Name = "Name_4",Customdate = DateTime.Now},
           new { ID = 5, Name = "Name_5",Customdate = DateTime.Now}
       };
    RadGrid1.DataSource = data1;
}


protected void RadGrid1_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e)
{
    dynamic data1 = new[] {
           new { ID = 1, Name =DateTime.Now.ToString(),Customdate = DateTime.Now},
           new { ID = 2, Name = "Name_2",Customdate = DateTime.Now},
           new { ID = 3, Name = "Name_3",Customdate = DateTime.Now},
           new { ID = 4, Name = "Name_4",Customdate = DateTime.Now},
           new { ID = 5, Name = "Name_5",Customdate = DateTime.Now}
       };
    e.DetailTableView.DataSource = data1;
}
于 2013-09-26T11:21:59.527 回答