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

How to conditionally hide expand/collapse (+/-) for certain rows or rows with no associate child rows.

1 Answer 98 Views
Grid
This is a migrated thread and some comments may be shown as answers.
gc_0620
Top achievements
Rank 1
gc_0620 asked on 12 May 2011, 03:40 AM
Folks,

Environment: RadControls for ajax 2011 v1 with VStudio 2010. I am using below link as a prototype.

http://demos.telerik.com/aspnet-ajax/grid/examples/programming/detailtabledatabind/defaultcs.aspx

I know there is a Telerik tutorial to hide the (expand/collapse) if no child rows. But my intention is to hide the expand/collapse if no child rows or Customer name starts with 'AN' or 'BL' in GridDataitem.

Thanks

gc_0620

1 Answer, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 12 May 2011, 06:15 AM
Hi gc_0620,

<MasterTableView  DataKeyNames="CustomerID,CutomerName">
protected void radgrdFees_DetailTableDataBind(object source, GridDetailTableDataBindEventArgs e)
    {
        
            GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
            int CustomerID = Convert.ToInt32(dataItem.GetDataKeyValue("CustomerID").ToString());
            String CutomerName = dataItem.GetDataKeyValue("CutomerName").ToString();
            if (CutomerName.Length > 1)
            {
                string strtemp = CutomerName.Substring(0, 2);
                if (strtemp == "AN" || strtemp == "BL")
                {
                    e.DetailTableView.DataSource = null;
                }
                else
                {
                    e.DetailTableView.DataSource = "Your DataSource";
                }
 
            }
            else
            {
                e.DetailTableView.DataSource ="Your DataSource";
            }
            
    }
 
protected void grdActionMenu_PreRender(object sender, EventArgs e)
    {
        HideExpandColumnRecursive(grdActionMenu.MasterTableView);
    }
 
 
public void HideExpandColumnRecursive(GridTableView tableView)
        {
            GridItem[] nestedViewItems = tableView.GetItems(GridItemType.NestedView);
            foreach (GridNestedViewItem nestedViewItem in nestedViewItems)
            {
                foreach (GridTableView nestedView in nestedViewItem.NestedTableViews)
                {
                    if (nestedView.Items.Count == 0)
                    {
                        System.Web.UI.WebControls.TableCell cell = nestedView.ParentItem["ExpandColumn"];
  
                        if (cell.Controls.Count == 0)
                        {
                        }
                        else
                        {
                            cell.Controls[0].Visible = false;
                        }
                        nestedViewItem.Visible = false;
                    }
                    if (nestedView.HasDetailTables)
                    {
                        HideExpandColumnRecursive(nestedView);
                    }
                }
            }
        }



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