Sean Severson
Top achievements
Rank 1
Sean Severson
asked on 18 Jul 2013, 04:25 PM
I am creating xml dynamically as the data source for a panelbar control. Is there a way to set the color of the text in the panel bar items via the xml?
Thanks!
Sean Severson
Thanks!
Sean Severson
3 Answers, 1 is accepted
0
Hello,
An easy and convenient way of achieving such functionality would be to set the item text color as attribute in your XML file and use the RadPanelBar ItemDataBound server-side event handler as shown in the code snippet below:
//code behind
Regards,
Boyan Dimitrov
Telerik
An easy and convenient way of achieving such functionality would be to set the item text color as attribute in your XML file and use the RadPanelBar ItemDataBound server-side event handler as shown in the code snippet below:
//code behind
protected
void
RadPanelBar1_ItemDataBound(
object
sender, RadPanelBarEventArgs e)
{
XmlElement element = (XmlElement)e.Item.DataItem;
//assume that the item's text is set as textColor attribute in your xml file
string
textColor = element.Attributes[
"textColor"
].ToString();
e.Item.Style.Add(
"color"
, textColor);
}
Regards,
Boyan Dimitrov
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
0
Sean Severson
Top achievements
Rank 1
answered on 23 Jul 2013, 12:36 PM
Boyan,
Thank you for your suggestion. I opted for a different solution, though. I created css styles for the various colors I needed and then added the CssClass attribute into the Item when it was dynamically created. Here is the function from my PanelBarFactory class used to create a single Item. There are some helper methods used by this function that I did not include, but I think you get the idea.
Private
Function
GetStatusReportPanelXML(
ByVal
sr
As
StatusReport,
ByVal
level
As
Integer
)
As
String
Dim
statusReportText
As
String
= sr.Created.ToString()
Dim
trimmedStatusReportText
As
String
= GetTrimmedPanelText(statusReportText, level)
Dim
toolTipText
As
String
=
String
.Empty
If
statusReportText <> trimmedStatusReportText
Then
toolTipText = System.Web.HttpUtility.HtmlEncode(statusReportText)
End
If
statusReportText = trimmedStatusReportText
'Add the tool tip text for the Status Report Type and created by
Dim
srToolTipText
As
StringBuilder =
New
StringBuilder
Dim
textColor
As
String
=
String
.Empty
If
toolTipText <>
String
.Empty
Then
srToolTipText.AppendFormat(
"{0} "
, toolTipText)
End
If
srToolTipText.AppendFormat(
"{0} "
,
String
.Format(
"Memo Type: {0}"
, sr.MemoTypeDescription))
srToolTipText.AppendFormat(
"{0}"
,
String
.Format(
"Created By: {0}"
, sr.CreatedByName))
If
Not
sr.IsDeleted
Then
If
CBool
(sr.MemoType =
CInt
(1).ToString)
Or
CBool
(sr.MemoType =
CInt
(5).ToString)
Then
If
sr.isYearEndPopulated =
True
Then
textColor =
"srGreen"
Else
textColor =
""
End
If
ElseIf
CBool
(sr.MemoType =
CInt
(3).ToString)
Or
CBool
(sr.MemoType =
CInt
(4).ToString)
Then
textColor =
"srRed"
ElseIf
CBool
(sr.GetMemoTypeEnum(
CStr
(2)))
Then
textColor =
"srBlue"
End
If
End
If
Return
String
.Format(
" <Item Text='{0}' ToolTip='{1}' Value='{2}' CssClass='{3}' />"
, statusReportText, srToolTipText.ToString(), VirtualPathUtility.ToAbsolute(
String
.Format(
"~/Claim/WC/StatusReports/WCStatusReports.aspx?Claim={0}&StatusReportID={1}"
, _claim.ClaimNumber, sr.ID)), textColor.ToString)
End
Function
.srRed
{
color
:Red
!important
;
}
.srGreen
{
color
:Green
!important
;
}
.srBlue
{
color
:Blue
!important
;
}
Sean Severson
0
Hello,
Thank you for sharing your solution with the community. I hope that someone will find it helpful and use it to implement similar functionality.
Regards,
Boyan Dimitrov
Telerik
Thank you for sharing your solution with the community. I hope that someone will find it helpful and use it to implement similar functionality.
Regards,
Boyan Dimitrov
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.