This is my first time using telerik controls. I am using gridview with grouping enabled.I am changing gridview row color programmatically but after grouping , if I expand or collapse groups it changes the bgcolor to default.eher is my code:-
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/ITIMaster.Master" CodeBehind="EmailList.aspx.vb" Inherits="EmailAlertsMonitor.EmailList" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"head"
runat
=
"server"
>
</
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"ContentPlaceHolder1"
runat
=
"server"
>
<
asp:HiddenField
ID
=
"hdAlertState"
runat
=
"server"
/>
<
telerik:RadGrid
ID
=
"gvEmailList"
runat
=
"server"
AllowSorting
=
"True"
CellSpacing
=
"0"
DataSourceID
=
"SqlDataSource1"
GridLines
=
"None"
ShowGroupPanel
=
"True"
Skin
=
"Outlook"
>
<
ClientSettings
AllowDragToGroup
=
"True"
>
<
Selecting
AllowRowSelect
=
"True"
/>
</
ClientSettings
>
<
MasterTableView
AutoGenerateColumns
=
"False"
DataKeyNames
=
"Alert_ID"
DataSourceID
=
"SqlDataSource1"
>
<
GroupByExpressions
>
<
telerik:GridGroupByExpression
>
<
SelectFields
>
<
telerik:GridGroupByField
FieldAlias
=
"Email_Subject"
FieldName
=
"Email_Subject"
/>
</
SelectFields
>
<
GroupByFields
>
<
telerik:GridGroupByField
FieldName
=
"Email_Subject"
HeaderText
=
"Subject"
/>
</
GroupByFields
>
</
telerik:GridGroupByExpression
>
</
GroupByExpressions
>
<
CommandItemSettings
ExportToPdfText
=
"Export to PDF"
></
CommandItemSettings
>
<
RowIndicatorColumn
FilterControlAltText
=
"Filter RowIndicator column"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
FilterControlAltText
=
"Filter ExpandColumn column"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"Alert_State"
FilterControlAltText
=
"Filter Alert_State column"
HeaderText
=
"Alert_State"
SortExpression
=
"Alert_State"
UniqueName
=
"Alert_State"
ItemStyle-Width
=
"50px"
>
<
ItemStyle
Width
=
"50px"
></
ItemStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Email_Subject"
FilterControlAltText
=
"Filter Email_Subject column"
HeaderText
=
"Email_Subject"
SortExpression
=
"Email_Subject"
UniqueName
=
"Email_Subject"
ItemStyle-Width
=
"200px"
>
<
ItemStyle
Width
=
"200px"
></
ItemStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Email_Sender"
FilterControlAltText
=
"Filter Email_Sender column"
HeaderText
=
"Email_Sender"
SortExpression
=
"Email_Sender"
UniqueName
=
"Email_Sender"
ItemStyle-Width
=
"100px"
>
<
ItemStyle
Width
=
"100px"
></
ItemStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Email_DateReceived"
DataType
=
"System.DateTime"
FilterControlAltText
=
"Filter Email_DateReceived column"
HeaderText
=
"Email_DateReceived"
SortExpression
=
"Email_DateReceived"
UniqueName
=
"Email_DateReceived"
ItemStyle-Width
=
"80px"
>
<
ItemStyle
Width
=
"80px"
></
ItemStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Alert_Level_Descr"
FilterControlAltText
=
"Filter Alert_Level_Descr column"
HeaderText
=
"Alert_Level_Descr"
SortExpression
=
"Alert_Level_Descr"
UniqueName
=
"Alert_Level_Descr"
ItemStyle-Width
=
"100px"
>
<
ItemStyle
Width
=
"100px"
></
ItemStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Alert_Source"
FilterControlAltText
=
"Filter Alert_Source column"
HeaderText
=
"Alert_Source"
SortExpression
=
"Alert_Source"
UniqueName
=
"Alert_Source"
ItemStyle-Width
=
"100px"
>
<
ItemStyle
Width
=
"100px"
></
ItemStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Alert_Server"
FilterControlAltText
=
"Filter Alert_Server column"
HeaderText
=
"Alert_Server"
SortExpression
=
"Alert_Server"
UniqueName
=
"Alert_Server"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
""
>
<
ItemTemplate
>
<
asp:HiddenField
ID
=
"hdColorCode"
runat
=
"server"
Value ='<%#EVAL("Alert_Level_Color_Code") %>' />
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
></
EditColumn
>
</
EditFormSettings
>
</
MasterTableView
>
<
FilterMenu
EnableImageSprites
=
"False"
></
FilterMenu
>
<
HeaderContextMenu
CssClass
=
"GridContextMenu GridContextMenu_Default"
></
HeaderContextMenu
>
</
telerik:RadGrid
>
<
asp:SqlDataSource
ID
=
"SqlDataSource1"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:DBConnectionString %>"
SelectCommand="SELECT Alert_Emails.Alert_ID, Alert_Emails.Email_ToAddresses, Alert_Emails.Email_Sender, Alert_Emails.Email_DateReceived, Alert_Emails.Email_Subject, Alert_Emails.EMail_Body, Alert_Emails.Alert_Level, Alert_Emails.Alert_Source, Alert_Emails.Alert_Server, Alert_Emails.Alert_State, Alert_Level.Alert_Level AS Alert_Level_Descr, Alert_Level.Alert_Level_Color_Code FROM Alert_Emails INNER JOIN Alert_Level ON Alert_Emails.Alert_Level = Alert_Level.Alert_Level_ID WHERE (Alert_Emails.Alert_State = @alertState) ORDER BY Alert_Emails.Alert_Level, Alert_Emails.Email_DateReceived DESC">
<
SelectParameters
>
<
asp:Parameter
Name
=
"alertState"
/>
</
SelectParameters
>
</
asp:SqlDataSource
>
</
asp:Content
>
Imports
System.Drawing
Imports
System.Data
Imports
System.Data.SqlClient
Public
Class
EmailList
Inherits
System.Web.UI.Page
Dim
alertState
As
String
Protected
Sub
Page_Load(
ByVal
sender
As
Object
,
ByVal
e
As
System.EventArgs)
Handles
Me
.Load
If
Page.IsPostBack =
False
Then
alertState = Request.QueryString(
"State"
)
Me
.hdAlertState.Value = alertState
LoadGrid()
End
If
End
Sub
Private
Sub
LoadGrid()
SqlDataSource1.SelectParameters(
"alertState"
).DefaultValue = hdAlertState.Value
SqlDataSource1.
Select
(DataSourceSelectArguments.Empty)
gvEmailList.DataBind()
End
Sub
Private
Sub
gvEmailList_ItemDataBound(sender
As
Object
, e
As
Telerik.Web.UI.GridItemEventArgs)
Handles
gvEmailList.ItemDataBound
If
e.Item.ItemType = Telerik.Web.UI.GridItemType.Item
Or
e.Item.ItemType = Telerik.Web.UI.GridItemType.AlternatingItem
Then
Dim
alertColorCode
As
String
=
DirectCast
(e.Item.FindControl(
"hdColorCode"
), HiddenField).Value
e.Item.BackColor = Color.FromName(alertColorCode)
End
If
End
Sub
End
Class