I have built a control in Sitefinity that uses the RadRotator. I have added two meta fields to the blog module, one boolean called Featured_Post and an image from the image library called Featured_Thumbnail.
My problem is with the display of the item in the rotator. There seems to be a section of post on the left side I can't get rid of (please see screen shot) with each rotation (automatic advance) it leave a small section of the last post on the screen.
I will attach a screen shot of the problem, my code is below. Thanks for your help
My problem is with the display of the item in the rotator. There seems to be a section of post on the left side I can't get rid of (please see screen shot) with each rotation (automatic advance) it leave a small section of the last post on the screen.
I will attach a screen shot of the problem, my code is below. Thanks for your help
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="FeaturedPost.ascx.cs" Inherits="FeaturedPost" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<
style
type
=
"text/css"
>
.rotator
{
margin-top: 3px;
margin-left: auto;
margin-right: auto;
width: 700px;
height: 200px;
}
</
style
>
<
telerik:RadRotator
ID
=
"RadRotator1"
runat
=
"server"
Height
=
"200"
ScrollDuration
=
"500"
FrameDuration
=
"2000"
ItemHeight
=
"200"
OnItemDataBound
=
"RotatorItemDataBound"
RotatorType
=
"AutomaticAdvance"
ItemWidth
=
"100"
CssClass
=
"rotator"
BorderStyle
=
"Solid"
BorderWidth
=
"1px"
>
<
ItemTemplate
>
<
div
style
=
"width:100px; height:200px;"
>
<
div
style
=
"overflow:hidden; margin-bottom:2px;"
>
<
asp:Image
runat
=
"server"
ID
=
"fpImage"
Width
=
"100px"
Height
=
"100px"
/>
</
div
>
<
div
style
=
"overflow:hidden; width:100px; height:95px; margin-bottom:3px"
>
<
asp:HyperLink
runat
=
"server"
ID
=
"fpLink"
/>
</
div
>
</
div
>
</
ItemTemplate
>
</
telerik:RadRotator
>
using System;
using System.Web;
using System.Web.UI.WebControls;
using Telerik.Cms.Web.UI;
using System.ComponentModel;
using Telerik.Rss;
using Telerik.Framework.Web.Design;
using Telerik.Cms.Engine;
using Telerik.Cms;
using Telerik.Blogs;
using System.Text;
using System.Collections;
public partial class FeaturedPost : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
RadRotator1.Width = ControlWidth;
BlogManager manager = new BlogManager();
IList posts;
if (selectedBlogs != null)
posts = manager.Content.GetContent(0, 0, "", selectedBlogs);
else
posts = manager.Content.GetContent();
if (posts.Count > 0)
{
ArrayList myFeaturedPosts = new ArrayList();
for (int i = 0; i < posts.Count; i++)
{
IContent item = (IContent)posts[i];
if ((Boolean)item.GetMetaData("Featured_Post"))
{
rotatorObject tempR = new rotatorObject();
IBlog blog = manager.GetBlog(item.ParentID);
tempR.URL = GetUrl(blog.BlogPage.Replace(".aspx", "/") + item.UrlWithExtension);
tempR.Title = item.GetMetaData("Title").ToString();
if (item.GetMetaData("Featured_Thumbnail") != null)
{
string tempImageURL = item.GetMetaData("Featured_Thumbnail").ToString().Trim();
if (tempImageURL != string.Empty)
{
tempR.imageURL = tempImageURL;
}
}
myFeaturedPosts.Add(tempR);
}
}
RadRotator1.DataSource = myFeaturedPosts;
RadRotator1.DataBind();
}
}
protected void RotatorItemDataBound(object sender, Telerik.Web.UI.RadRotatorEventArgs e)
{
Image i = (Image)e.Item.FindControl("fpImage");
HyperLink h = (HyperLink)e.Item.FindControl("fpLink");
rotatorObject r = (rotatorObject)e.Item.DataItem;
i.ImageUrl = r.imageURL;
h.Text = r.Title;
h.NavigateUrl = r.URL;
}
#region Properties
public int ControlWidth
{
get
{
if (ViewState["ControlWidth"] == null)
return 400;
return int.Parse(ViewState["ControlWidth"].ToString());
}
set { ViewState["ControlWidth"] = value; }
}
[TypeConverter("Telerik.Blogs.WebControls.SelectedBlogsConverter, Telerik.Blogs")]
[WebEditor("Telerik.Blogs.WebControls.BlogsSelector, Telerik.Blogs")]
public Guid[] SelectedBlogs
{
get
{
return this.selectedBlogs;
}
set
{
this.selectedBlogs = value;
}
}
public virtual string ProviderName
{
get
{
return this.providerName;
}
set
{
this.providerName = value;
}
}
private Guid[] selectedBlogs;
private string providerName = string.Empty;
#endregion
public string GetUrl(string value)
{
// if our value starts with ~/
// we return url
if (value.StartsWith("~/"))
return this.ResolveUrl(value);
if (value.StartsWith("["))
{
int idx = value.IndexOf("]");
//getting the provider [Libraries]
string provider = value.Substring(1, idx - 1);
string strId = value.Substring(idx + 1);
Guid id = new Guid(strId);
if (ContentManager.Providers.ContainsKey(provider))
{
IContent cnt = ContentManager.Providers[provider].GetContent(id);
if (cnt != null)
return VirtualPathUtility.ToAbsolute(cnt.UrlWithExtension, this.Context.Request.ApplicationPath);
}
}
return value.ToString();
}
public class rotatorObject
{
public string imageURL
{ get; set; }
public string URL
{ get; set; }
public string Title
{ get; set; }
}
}