I'm not sure if this is the correct terminology, but I think it's the Legend ItemMarker that I want. It's the symbol in the legend whether it's a squars, circle, triangle,etc that I want to change the color of programatically. How do I programatically change the fill color and border of these objects?
The following line of code provides an index out of range error message.
RadChart1.Chart.Legend.Items(0).Appearance.FillStyle.MainColor = Drawing.Color.FromArgb(155, 155, 155)
Thanks,
Brian
<
property
name
=
"AllowScripts"
>False</
property
>
<
asp:SqlDataSource
ID
=
"SqlDataSource1"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:TestConnectionString %>"
SelectCommand="SELECT [name], [id], [dtime] FROM [test] WHERE ([dtime] = @dtime)">
<
SelectParameters
>
<
asp:ControlParameter
ControlID
=
"Calendar1"
Name
=
"dtime"
PropertyName
=
"SelectedDate"
Type
=
"DateTime"
/>
</
SelectParameters
>
</
asp:SqlDataSource
>
<
asp:GridView
ID
=
"GridView1"
runat
=
"server"
AutoGenerateColumns
=
"False"
DataKeyNames
=
"id"
DataSourceID
=
"SqlDataSource1"
>
<
Columns
>
<
asp:BoundField
DataField
=
"name"
HeaderText
=
"name"
SortExpression
=
"name"
/>
<
asp:BoundField
DataField
=
"id"
HeaderText
=
"id"
InsertVisible
=
"False"
ReadOnly
=
"True"
SortExpression
=
"id"
/>
<
asp:BoundField
DataField
=
"dtime"
HeaderText
=
"dtime"
SortExpression
=
"dtime"
/>
</
Columns
>
</
asp:GridView
>
<
asp:Calendar
ID
=
"Calendar1"
runat
=
"server"
></
asp:Calendar
>
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Default2" %>
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadCalendar
ID
=
"RadCalendar1"
Runat
=
"server"
AutoPostBack
=
"True"
EnableMultiSelect
=
"False"
SelectedDate
=
""
ViewSelectorText
=
"x"
>
</
telerik:RadCalendar
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
DataSourceID
=
"SqlDataSource1"
GridLines
=
"None"
>
<
MasterTableView
AutoGenerateColumns
=
"False"
DataSourceID
=
"SqlDataSource1"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to Pdf"
></
CommandItemSettings
>
<
RowIndicatorColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"DateSubNeeded"
DataType
=
"System.DateTime"
HeaderText
=
"DateSubNeeded"
SortExpression
=
"DateSubNeeded"
UniqueName
=
"DateSubNeeded"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Reason"
HeaderText
=
"Reason"
SortExpression
=
"Reason"
UniqueName
=
"Reason"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"FullName"
HeaderText
=
"FullName"
ReadOnly
=
"True"
SortExpression
=
"FullName"
UniqueName
=
"FullName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"EmailAddress"
HeaderText
=
"EmailAddress"
SortExpression
=
"EmailAddress"
UniqueName
=
"EmailAddress"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Office"
HeaderText
=
"Office"
SortExpression
=
"Office"
UniqueName
=
"Office"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
<
p
>
</
p
>
<
p
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
Runat
=
"server"
>
</
telerik:RadScriptManager
>
</
p
>
<
p
>
<
asp:SqlDataSource
ID
=
"SqlDataSource1"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:Human_ResourcesConnectionString %>"
SelectCommand="SELECT [DateSubNeeded], [Reason], [FullName], [EmailAddress], [Office] FROM [vw_SCS_SubRequests] WHERE ([DateSubNeeded] = @DateSubNeeded)">
<
SelectParameters
>
<
asp:ControlParameter
ControlID
=
"RadCalendar1"
Name
=
"DateSubNeeded"
PropertyName
=
"SelectedDate"
Type
=
"DateTime"
/>
</
SelectParameters
>
</
asp:SqlDataSource
>
</
p
>
<
p
>
</
p
>
</
form
>
</
body
>
</
html
>
The page has a panel bar which dynamically loads TreeViews as PanelItems. To prevent losing the trees during a postback, a custom control is loaded in the XmlHttpPanel. In order to get the correct control and pass all desired information, I need to access multiple custom attributes of the selected node. Any suggestions on how to either pass or access the selected node server side (from within the "XmlHttpPanel_ServiceRequest" without performing a postback?
Update to post: The trees are gone upon the service request as well and since the tree and nodes or not serializable the information cannot be stored in the viewstate either. What was the point of making a control that loses its contents upon a postback? Looks like the path will be to stuff everything into a long string for use as the "value" on the service call then parse out what's needed. For such an impressive toolset overall, seems like the PanelBar is a tad lacking. Unless of course, I missing the obvious which is always a possibility.
Below is an overly simplified view of what is being attempted.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
<
telerik:RadScriptBlock
ID
=
"RadScriptBlock1"
runat
=
"server"
>
<
script
language
=
"javascript"
type
=
"text/javascript"
>
function NodeClicked(sender, args) {
var node = args.get_node();
var panel = $find("<%= RadXmlHttpPanel1.ClientID %>");
panel.set_value(node.get_text());
}
</
script
>
</
telerik:RadScriptBlock
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
table
>
<
tr
>
<
td
>
<
telerik:RadPanelBar
ID
=
"RadPanelBar1"
runat
=
"server"
>
</
telerik:RadPanelBar
>
</
td
>
<
td
>
<
telerik:RadXmlHttpPanel
ID
=
"RadXmlHttpPanel1"
runat
=
"server"
OnServiceRequest
=
"XmlHttpPanel_ServiceRequest"
>
</
telerik:RadXmlHttpPanel
>
</
td
>
</
tr
>
</
table
>
</
form
>
</
body
>
</
html
>
public
partial
class
Default : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!Page.IsPostBack)
LoadRootContent();
}
private
void
LoadRootContent()
{
RadPanelItem myPanelItem =
new
RadPanelItem(
"Item 1"
);
RadTreeView myTreeView =
new
RadTreeView();
myTreeView.OnClientNodeClicked =
"NodeClicked"
;
//Build a node
RadTreeNode node1 =
new
RadTreeNode(
"TreeNode 1"
);
node1.Category =
"Customers"
;
node1.Attributes.Add(
"CustomerID"
,
"123"
);
myTreeView.Nodes.Add(node1);
//Build another node
RadTreeNode node2 =
new
RadTreeNode(
"TreeNode 2"
);
node2.Category =
"Prospects"
;
node2.Attributes.Add(
"ProspectID"
,
"456"
);
myTreeView.Nodes.Add(node2);
//Add the tree to the PanelItem - this could happen more than once for each PanelItem
myPanelItem.Controls.Add(myTreeView);
//Add the item to the PanelBar - this would occur for multiple items
RadPanelBar1.Items.Add(myPanelItem);
}
protected
void
XmlHttpPanel_ServiceRequest(
object
sender, RadXmlHttpPanelEventArgs e)
{
string
val = e.Value;
if
(val ==
"TreeNode 1"
)
{
RadXmlHttpPanel1.Controls.Add(LoadControl(
"Test1.ascx"
));
}
if
(val ==
"TreeNode 2"
)
RadXmlHttpPanel1.Controls.Add(LoadControl(
"Test2.ascx"
));
}
}