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

How to find whether group header is expanded?

5 Answers 160 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Vijaianand
Top achievements
Rank 1
Vijaianand asked on 23 Dec 2011, 03:24 PM
I am trying to change the color of the header row when its in expanded mode. I tried the below code but didn't work.

Protected Sub RadGrid1_ItemDataBound(ByVal sender As Object, ByVal e As GridItemEventArgs) Handles RadGrid1.ItemDataBound
        If TypeOf e.Item Is GridGroupHeaderItem Then
            Dim gpheader As GridGroupHeaderItem = CType(e.Item, GridGroupHeaderItem)
 
           If item.Selected Then
             gpheader.BackColor = Drawing.Color.DarkSeaGreen
            End If
End Sub

Any other way?

5 Answers, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 24 Dec 2011, 06:50 PM
Hello VIJAIANAND,

<head runat="server">
    <title></title>
    <style type="text/css">
        .MyClass
        {
            background-color:Red !important;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
        </telerik:RadScriptManager>
        <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource"
            AllowSorting="true" ShowGroupPanel="true" GroupingEnabled="true" OnItemDataBound="RadGrid1_ItemDataBound">
            <MasterTableView DataKeyNames="ID,SrNo">
                <Columns>
                    <telerik:GridBoundColumn DataField="ID" UniqueName="ID" HeaderText="ID">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="Name">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="Name1" UniqueName="Name" HeaderText="Name1">
                    </telerik:GridBoundColumn>
                </Columns>
            </MasterTableView>
            <ClientSettings AllowDragToGroup="true">
            </ClientSettings>
        </telerik:RadGrid>
    </div>
    </form>
</body>
</html>
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(System.Int32));
            dt.Columns.Add("Name", typeof(System.String));
            dt.Columns.Add("SrNo", typeof(System.Int32));
            dt.Rows.Add("1", "Name1", "1");
            dt.Rows.Add("2", "Name2", "2");
            dt.Rows.Add("3", "Name3", "3");
            dt.Rows.Add("4", "Name4", "4");
 
            RadGrid1.DataSource = dt;
        }
 
        protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridGroupHeaderItem)
            {
                e.Item.CssClass = "MyClass";
            }
        }


Thanks,
Jayesh Goyani
0
Vijaianand
Top achievements
Rank 1
answered on 27 Dec 2011, 03:12 PM
This is not right code or solution. There is no checking on whether group is expanded or not. You are only checking its a group row. Please don't put solutions without reading the questions.
0
Richard
Top achievements
Rank 1
answered on 27 Dec 2011, 03:39 PM
Hello VIJAIANAND,

Have you looked at this code library thread? It points to a code library sample that should help you determine if the GroupRow Header is in an expanded state.
ExpandCollapseGroupedGridOnDoubleClickingTheGroupHeader

Hope this helps a bit.

Cheers!
0
Vijaianand
Top achievements
Rank 1
answered on 27 Dec 2011, 07:56 PM
That example gives an idea how I can do it but that incorporating "Dblclick" to invoke the expansion and identify its expanded or not. But a click event on the groupheader/groupsplitter column is already existing functionality. I thought it would be standalone property for the groupitem header to see whether expanded or not? 
0
Vijaianand
Top achievements
Rank 1
answered on 27 Dec 2011, 08:14 PM
I was able to extract what I wanted it from the code snippet you provided and it works. Here you go, 
Protected Sub RadGrid1_PreRender(ByVal sender As Object, ByVal e As EventArgs) Handles RadGrid1.PreRender
       For Each grphdr As GridGroupHeaderItem In RadGrid1.MasterTableView.GetItems(GridItemType.GroupHeader)
           If grphdr.Expanded Then
               grphdr.BackColor = Drawing.Color.DarkSeaGreen
           End If
       Next
   End Sub
Tags
Grid
Asked by
Vijaianand
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Vijaianand
Top achievements
Rank 1
Richard
Top achievements
Rank 1
Share this question
or