Управляется она тремя свойствами: ссылкой, именем библиотеки с изображениями для показа, и ссылкой на узел (относительной или абсолютной), где оная библиотека находится.
using System;
using System.Runtime.InteropServices;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
using System.Web.UI.WebControls;
namespace RotatingBanner
{
[Guid("e93d7943-5503-4894-9ca8-1ad9368d1153")]
public class RotatingBannerWebPart : Microsoft.SharePoint.WebPartPages.WebPart
{
public string strURL = "";
public string strImgPath = "";
public string strList = "";
HyperLink link = new HyperLink();
// Свойства веб-части
[Personalizable(), WebBrowsable, WebDisplayName("Ссылка")]
public string URL
{
get
{
return this.strURL;
}
set
{
this.strURL = value;
if (link != null)
{
link.NavigateUrl = this.URL;
}
}
}
[Personalizable(), WebBrowsable, WebDisplayName("Узел с библиотекой баннеров")]
public string SPListURL
{
get
{
return this.strList;
}
set
{
this.strList = value;
}
}
[Personalizable(), WebBrowsable, WebDisplayName("Название библиотеки баннеров")]
public string ImgPath
{
get
{
return this.strImgPath;
}
set
{
this.strImgPath = value;
}
}
public void RotatingImage()
{
this.ExportMode = WebPartExportMode.All;
}
protected override void CreateChildControls()
{
base.CreateChildControls();
// Пробуем считать картинки из библиотеки
try
{
if (strList != "")
{
// Подключаемся к указанному узлу
SPSite site = new SPSite(strList);
SPWeb web = site.OpenWeb();
if (strImgPath != "")
{
// Подключаемся к указанной библиотеке
SPList list = web.Lists[strImgPath];
SPListItem item;
SPListItemCollection items = list.Items;
int iCount = 0;
Random r = new Random();
iCount = r.Next(0, list.ItemCount);
item = items[iCount];
string imageUrl = "/" + list.RootFolder.Url + "/" + item.Name;
// Вставляем картинку с ссылкой в веб-часть
link.ImageUrl = imageUrl;
this.Controls.Add(link);
}
// Закрыть используемый узел
site.Close();
site.Dispose();
web.Close();
web.Dispose();
}
}
catch (Exception ex)
{
TextField text = new TextField();
text.Value = ex.Message;
this.Controls.Add(text);
}
}
}
}
No comments:
Post a Comment