This is a migrated thread and some comments may be shown as answers.

RadTreeList with nested RadGrid in TemplateColumn

1 Answer 92 Views
TreeList
This is a migrated thread and some comments may be shown as answers.
Chrisbarm
Top achievements
Rank 1
Chrisbarm asked on 04 Jun 2015, 02:14 PM

HI,

I have a hierarchical RadTreeList using TreeListTemplateColumns - in one of these template columns I have a label (hidden) and a RadGrid,  the purpose of the Label is to make available an ID to use to bind the RadGrid.  

If I try to put this ID into either the ParentDataKeyNames, DataKeyNames or both the treelist does not display, this is why it is in a label.

I am trying to use the OnNeedDataSource Event of the RadGrid to bind the data to it, however I cannot find / get the value from the label.

I have tried TreeListDataItem Item = (TreeListDataItem)(grid.NamingContainer); to reference the column but I just cant seem to get it right.  

01.<telerik:TreeListTemplateColumn UniqueName="Firmware" HeaderText="Firmware">
02.    <ItemTemplate>
03.        <asp:Label ID="lblPartNumberDetailsId" runat="server" Text='<%#Eval("PartNumberDetails_Id") %>' Visible="false" />
04. 
05.          <telerik:RadGrid ID="RGFirmware" runat="server" Visible="true" AutoGenerateColumns="false" ShowHeader="false" ShowFooter="false"
06.            MasterTableView-EditMode="InPlace" AllowAutomaticInserts="true" OnNeedDataSource="RGFirmware_NeedDataSource" OnInsertCommand="RGFirmware_InsertCommand">
07.            <MasterTableView CommandItemDisplay="bottom">
08.                <CommandItemSettings AddNewRecordText="Add Firmware" ShowAddNewRecordButton="false" ShowRefreshButton="false" />
09.                <CommandItemTemplate>
10.                    <asp:LinkButton ID="AddFirmware" runat="server" Text="Add Firmware" CommandName="InitInsert" />
11.                </CommandItemTemplate>
12.                <NoRecordsTemplate></NoRecordsTemplate>
13.                <Columns>
14.                    <telerik:GridTemplateColumn UniqueName="FirmWare">
15.                        <ItemTemplate>
16.                            <asp:TextBox ID="txtFirmware" runat="server" Text='<%#Eval("FirmWare") %>' />
17. 
18.                        </ItemTemplate>
19.                        <EditItemTemplate>
20.                            <asp:TextBox ID="txtFirmware" runat="server" Text='<%#Eval("FirmWare") %>' />
21. 
22.                        </EditItemTemplate>
23.                    </telerik:GridTemplateColumn>
24.                </Columns>
25.            </MasterTableView>
26.        </telerik:RadGrid
27.    </ItemTemplate>
28.</telerik:TreeListTemplateColumn>

 

01.protected void RGFirmware_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
02.{
03.    RadGrid grid = sender as RadGrid;
04.    TreeListDataItem item = (TreeListDataItem)(grid.NamingContainer);
05.    string Value = ((Label)item["PartNumberDetails_Id"].FindControl("lblPartNumberDetailsId")).Text.ToString();
06. 
07.    if (!String.IsNullOrEmpty(Value))
08.    {
09.        DataTable objDT = new DataTable("TempTable");
10.        List<SqlParameter> parameters = new List<SqlParameter>();
11.        parameters.Add(new SqlParameter("@PartNumberDetailsId", Value));
12.        objDT = DataAccess.BuildDataTable("SelectFirmwareForPart", parameters);
13.        grid.DataSource = objDT;
14.    }
15.    else
16.    {
17.        grid.Visible = false;
18.    }
19.}

 

Any help is much appreciated

Chris

1 Answer, 1 is accepted

Sort by
0
Chrisbarm
Top achievements
Rank 1
answered on 04 Jun 2015, 02:17 PM

Sorry the line 

 05.   string Value = ((Label)item["PartNumberDetails_Id"].FindControl("lblPartNumberDetailsId")).Text.ToString();

should read

05.   string Value = ((Label)item["Firmware"].FindControl("lblPartNumberDetailsId")).Text.ToString();

Tags
TreeList
Asked by
Chrisbarm
Top achievements
Rank 1
Answers by
Chrisbarm
Top achievements
Rank 1
Share this question
or