----------
Posted
on Jun 30, 2010
(permalink)
public
class
Marble : ISkin
{
public
Marble()
{
}
public
string
GetCSS()
{
StringBuilder css =
new
StringBuilder();
css.Append(@"
<Chart SkinName=
""
Marble
""
>
<ChartTitle>
<Appearance>
<FillStyle MainColor=
""
Transparent
""
/>
<Position AlignedPosition=
""
Top
""
/>
</Appearance>
<TextBlock>
<Appearance>
<TextProperties Font=
""
Arial, 22pt
""
Color=
""
89, 79, 52
""
/>
</Appearance>
</TextBlock>
</ChartTitle>
<Legend>
<Appearance Overflow=
""
Row
""
>
<ItemTextAppearance>
<TextProperties Color=
""
101, 91, 72
""
Font=
""
Georgia, 9pt
""
/>
</ItemTextAppearance>
<FillStyle MainColor=
""
Transparent
""
/>
<Position AlignedPosition=
""
Bottom
""
/>
<Dimensions Margins=
""
17.6%, 3%, 1px, 1px
""
/>
<Border Color=
""
Transparent
""
/>
</Appearance>
</Legend>
<Appearance TextQuality=
""
AntiAlias
""
>
<FillStyle FillType=
""
Image
""
>
<FillSettings ImageDrawMode=
""
Flip
""
BackgroundImage=
""
{chart}
""
/>
</FillStyle>
<Border Color=
""
181, 166, 132
""
/>
</Appearance>
<PlotArea>
<XAxis>
<Appearance Color=
""
Transparent
""
>
<MajorGridLines PenStyle=
""
Solid
""
Color=
""
94, 93, 87
""
/>
<MajorTick Color=
""
173, 164, 142
""
/>
<TextAppearance>
<TextProperties Color=
""
101, 91, 72
""
Font=
""
Georgia, 9pt
""
/>
</TextAppearance>
</Appearance>
<AxisLabel>
<TextBlock>
<Appearance>
<TextProperties Color=
""
101, 91, 72
""
Font=
""
Georgia, 9pt
""
/>
</Appearance>
</TextBlock>
</AxisLabel>
</XAxis>
<YAxis>
<Appearance Color=
""
Transparent
""
>
<MajorGridLines PenStyle=
""
Solid
""
Color=
""
94, 93, 87
""
/>
<MinorGridLines PenStyle=
""
Solid
""
Color=
""
94, 93, 87
""
/>
<MinorTick Color=
""
173, 164, 142
""
/>
<MajorTick Color=
""
173, 164, 142
""
/>
<TextAppearance>
<TextProperties Color=
""
101, 91, 72
""
Font=
""
Georgia, 9pt
""
/>
</TextAppearance>
</Appearance>
<AxisLabel>
<TextBlock>
<Appearance>
<TextProperties Color=
""
101, 91, 72
""
Font=
""
Georgia, 9pt
""
/>
</Appearance>
</TextBlock>
</AxisLabel>
</YAxis>
<Appearance>
<FillStyle FillType=
""
Image
""
>
<FillSettings ImageDrawMode=
""
Flip
""
BackgroundImage=
""
{plotarea}
""
ImageAlign=
""
Top
""
ImageFlip=
""
FlipY
""
/>
</FillStyle>
<Dimensions Margins=
""
22%, 24%, 12%, 10%
""
/>
<Border Color=
""
144, 136, 118
""
Width=
""
8
""
/>
</Appearance>
</PlotArea>
</Chart>");
return
css.ToString();
}
}
<ResourceTypes>
<telerik:ResourceType DataSourceID="sdsUsers" ForeignKeyField="UserID"
KeyField="UserID" Name="User_Name" TextField="User_Name" />
</ResourceTypes>
Protected Sub RadScheduler1_AppointmentDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.SchedulerEventArgs) Handles RadScheduler1.AppointmentDataBound
If e.Appointment.Resources.GetResourceByType("User_Name") IsNot Nothing Then
e.Appointment.BackColor = DataBinder.Eval(e.Appointment.Resources.GetResourceByType("User_Name").DataItem, "BackColor")
End If
End Sub
My user table schema:
UserID
User_Name
BackColor
I still do not get any color for the scheduler. What went wrong with my setting?
<%
@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl1.ascx.cs" Inherits="WebUserControl1" %>
<%
@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
 
<
telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<
script language="javascript" type="text/javascript">
function OnRowClicked(sender, eventArgs) {
var newsDetailURL = eventArgs.getDataKeyValue("link") + '&style=html';
var index = newsDetailURL.indexOf('http://');
if (index == -1) {
newsDetailURL = newsDetailURL.replace(
'http:/', 'http://');
}
window.open(newsDetailURL,
'', 'location=0,status=0,toolbar=0,directories=no,menubar=no,titlebar=no,scrollbars=1,resizable=1');
}
function RebindNewsFeeds() {
var btnRebind = $get('<%= btnReload.ClientID %>');
btnRebind.click();
}
function ResizeNewsFeed() {
// var grid = document.getElementById("<%= RadGridNewsFeed.ClientID %>"); //$find("< % = .ClientID % >");
// var parentDiv = grid.parentNode;
// var documentObj = document.documentElement;
// if (window.opera || (document.all && !(document.compatMode && document.compatMode == "CSS1Compat"))) {
// documentObj = document.body;
// }
// parentDiv.height = '100%';
// parentDiv.width = '100%';
// parentDiv.style.height = '100%';
// parentDiv.style.width = '100%';
try {
var grid = $find("<%= RadGridNewsFeed.ClientID %>");
grid._scrolling._initializeDimensions();
//grid.repaint();
}
catch (ex) { }
}
</
script>
</
telerik:RadCodeBlock>
<
telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default">
</telerik:RadAjaxLoadingPanel>
<
telerik:RadAjaxPanel ID="RadAjaxPanel1" LoadingPanelID="RadAjaxLoadingPanel1" runat="server" Height="100%" Width="100%">
<telerik:RadGrid ID="RadGridNewsFeed" runat="server"
AutoGenerateColumns="False" OnItemDataBound="RadGridNewsFeed_ItemDataBound"
Skin="Grid" EnableEmbeddedSkins="False" GridLines="None"
HeaderStyle-Width="100%" ItemStyle-Width="100%" width="100%"
Height="100%" AllowSorting="True" ItemStyle-Wrap="false"
style="margin:0; border: 0; outline: none"
EnableViewState="False" onneeddatasource="RadGridNewsFeed_NeedDataSource" >
<MasterTableView Width="100%" CellPadding="0" CellSpacing="0"
ClientDataKeyNames="link" ShowHeadersWhenNoRecords="true"
AllowNaturalSort="false" TableLayout="Auto" EnableViewState="False">
<SortExpressions>
<telerik:GridSortExpression FieldName="pubDate" SortOrder="Descending" />
</SortExpressions>
<CommandItemSettings ExportToPdfText="Export to Pdf" />
<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
</RowIndicatorColumn>
<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
</ExpandCollapseColumn>
<Columns>
<telerik:GridBoundColumn DataField="pubDate" HeaderText="Date" UniqueName="pubDate">
<HeaderStyle HorizontalAlign="Left" Width="20%" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Title" HeaderText="Title" UniqueName="Title" HeaderStyle-Width="80%">
<HeaderStyle HorizontalAlign="Left"/>
<ItemStyle Wrap="false" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="link" HeaderText="Detail News Link" UniqueName="link" Visible="false">
<HeaderStyle HorizontalAlign="Left" />
</telerik:GridBoundColumn>
</Columns>
<EditFormSettings>
<EditColumn CancelImageUrl="Cancel.gif" EditImageUrl="Edit.gif"
FilterControlAltText="Filter EditCommandColumn column"
InsertImageUrl="Update.gif" UpdateImageUrl="Update.gif">
</EditColumn>
</EditFormSettings>
</MasterTableView>
<SortingSettings EnableSkinSortStyles="false" />
<ClientSettings EnableRowHoverStyle="true" >
<ClientEvents OnRowClick="OnRowClicked" />
<%
--<Scrolling AllowScroll="true" UseStaticHeaders="true" SaveScrollPosition="true" ScrollHeight="100%"/>--%>
</ClientSettings>
<HeaderStyle Width="100%" />
<ItemStyle Width="100%" Wrap="False" />
<FilterMenu EnableEmbeddedSkins="False" EnableImageSprites="False">
</FilterMenu>
<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Grid"
EnableEmbeddedSkins="False">
</HeaderContextMenu>
</telerik:RadGrid>
<
asp:Button ID="btnReload" SkinID="ButtonHidden" runat="server" OnClick="btnReload_Click"
Text="Button" />
<input type="hidden" id="txtLastUrl" runat="server" value ="" />
</
telerik:RadAjaxPanel>
 
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Telerik.Web.UI;
using
System.Data;
using
System.Net;
public
partial class WebUserControl1 : System.Web.UI.UserControl
{
DataSet _dsNewsFeed = null;
const string styleTag = "&style=html";
private delegate void DownloadNewsFeedData(string val);
#region
Cotrol Events
/// <summary>
/// It will be called whenver master form is laoded or refreshed
/// </summary>
/// <param name="sender">Caller of the event</param>
/// <param name="e">Event info which is passed along the method</param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
LoadNewsFeed();
}
#endregion
#region
Public Routines
/// <summary>
/// It will be called whenever you want to hit the third party server to download the feed for the active company
/// </summary>
public void LoadNewsFeed()
{
try
{
//Formulate the url to get the news for the company
string newsFeedURL = "http://savanet.acquiremedia.com/news/search";
string companyNewsFeedURL = "http://savanet.acquiremedia.com/news/search?query=/ANN";
_dsNewsFeed =
new DataSet();
//GetNewsFeedDataTable(companyNewsFeedURL);
////Call async thread to download news feed data
DownloadNewsFeedData downloadNewsFeedData = new DownloadNewsFeedData(GetNewsFeedDataTable);
AsyncCallback ac = new AsyncCallback(UpdateNewsFeedDownloadingStatus);
downloadNewsFeedData.BeginInvoke(companyNewsFeedURL, ac, downloadNewsFeedData);
}
catch (Exception ex)
{
}
}
#endregion
#region
Private Routines
/// <summary>
/// It will be called when news downloading thread is completed
/// </summary>
/// <param name="ar">Result object of the async thread</param>
private void UpdateNewsFeedDownloadingStatus(IAsyncResult ar)
{
try
{
//Bind news feed data table to the grid
RadGridNewsFeed.DataSource = _dsNewsFeed.Tables[
"item"];
RadGridNewsFeed.DataBind();
//Terminate exchange rate downloading request
DownloadNewsFeedData downloadNewsFeedData = (DownloadNewsFeedData)ar.AsyncState;
if (!object.Equals(null, downloadNewsFeedData))
downloadNewsFeedData.EndInvoke(ar);
 
}
catch (Exception ex) { }
}
/// <summary>
/// It will download the feed from third party server and bind it to the grid
/// </summary>
/// <param name="newsFeedURL">Third party web service url to download the feed</param>
private void GetNewsFeedDataTable(string newsFeedURL)
{
 
if (txtLastUrl.Value != newsFeedURL)
{
txtLastUrl.Value = newsFeedURL;
// Create the web request
HttpWebRequest request = WebRequest.Create(newsFeedURL) as HttpWebRequest;
request.Timeout = 10000;
// Get response
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
 
// Load data into a dataset
_dsNewsFeed.ReadXml(response.GetResponseStream());
//LogUtility.BuildNewExceptionAndLog(this.GetType(), "GetNewsFeedDataTable", "After get response" + _dsNewsFeed.Tables["item"].Rows.Count.ToString());
}
//RadGridNewsFeed.DataSource = _dsNewsFeed.Tables["item"];
//RadGridNewsFeed.DataBind();
}
}
#endregion
#region
Grid Events
/// <summary>
/// It is called after an item is bound to the grid
/// </summary>
/// <param name="sender">The caller of the method. In this case it will be grid</param>
/// <param name="e">It contains the parameter information which is passed along the event</param>
protected void RadGridNewsFeed_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item.ItemType == GridItemType.AlternatingItem || e.Item.ItemType == GridItemType.Item)
{
GridDataItem gItem = (GridDataItem)e.Item;
DataRowView dr = e.Item.DataItem as DataRowView;
if (dr.Row["description"] != DBNull.Value || !string.IsNullOrEmpty(dr.Row["description"].ToString()))
{
gItem.ToolTip = dr.Row[
"description"].ToString();
}
}
}
#endregion
protected void btnReload_Click(object sender, EventArgs e)
{
this.LoadNewsFeed();
}
protected void RadGridNewsFeed_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
try
{
////Bind news feed data table to the grid
//if (_dsNewsFeed != null && _dsNewsFeed.Tables.Count > 0)
// RadGridNewsFeed.DataSource = _dsNewsFeed.Tables["item"];
//else
// RadGridNewsFeed.DataSource = null;
}
catch (Exception ex) { }
}
}