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

Disable NestedView Template for first row of Telerik Radgrid

1 Answer 175 Views
Grid
This is a migrated thread and some comments may be shown as answers.
unnati
Top achievements
Rank 1
unnati asked on 03 Nov 2011, 07:44 AM
Hello Telerik Team,

I have a Radgrid on my aspx page which is using Nested View Template for drill down of data based on a datakeyname in the first level.
I want to disable the drilldown ability only for the first row and keep it as is for rest of the rows in Radgrid.
This is because the first row on drill down does not contain any data, in any case in our implementation.
Hence, drill down for first row needs to be disabled.
Please let me know if it is possible to do that.

1 Answer, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 03 Nov 2011, 10:41 AM
Hello,

<telerik:RadGrid ID="RadGrid2" runat="server" AutoGenerateColumns="false">
           <MasterTableView DataKeyNames="ID1">
               <Columns>
                   <telerik:GridBoundColumn DataField="ID1" HeaderText="ID1" UniqueName="ID1">
                   </telerik:GridBoundColumn>
               </Columns>
               <NestedViewTemplate>
                   <asp:Panel ID="Panel1" runat="server">
                       content come here
                       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                   </asp:Panel>
               </NestedViewTemplate>
           </MasterTableView>
       </telerik:RadGrid>
protected void Page_Load(object sender, EventArgs e)
{
    RadGrid2.NeedDataSource += new GridNeedDataSourceEventHandler(RadGrid2_NeedDataSource);
    RadGrid2.ItemDataBound += new GridItemEventHandler(RadGrid2_ItemDataBound);
}
 
void RadGrid2_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridNestedViewItem)
    {
        GridNestedViewItem item = e.Item as GridNestedViewItem;
         
        //using datakey
        if ((item.ParentItem as GridDataItem).GetDataKeyValue("ID1").ToString() == "1")
        {
            Panel Panel1 = item.FindControl("Panel1") as Panel;
            Panel1.Enabled = false;
        }
 
        // using index
        if ((item.ParentItem as GridDataItem).ItemIndex == 0)
        {
            Panel Panel1 = item.FindControl("Panel1") as Panel;
            Panel1.Enabled = false;
        }
 
    }
}
 
void RadGrid2_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    dynamic data = new[] {
            new { ID1 = 1, ID2 = 2, ID3=3},
            new { ID1 = 4, ID2 = 5, ID3=6}
            
        };
    RadGrid2.DataSource = data;
}


Thanks,
Jayesh Goyani
Tags
Grid
Asked by
unnati
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Share this question
or