我有自定义列表,其中包含图像字段。我必须通过对象建模代码显示图像。
我需要使用哪种控件来显示webpart中的图像以及我需要为其分配的属性。
[Guid("207cea76-b1ee-4b86-9638-00c22d3d9398")]
public class News : System.Web.UI.WebControls.WebParts.WebPart
{
Label lblTitle;
ImageField imgNews;
Label lblDescription;
public News()
{
}
protected override void CreateChildControls()
{
base.CreateChildControls();
lblTitle = new Label();
imgNews = new ImageField();
lblDescription = new Label();
string siteURL = "http://my-dev-box-har";
using (SPSite site = new SPSite(siteURL))
{
using (SPWeb web = site.OpenWeb())
{
SPListItemCollection list = web.Lists["News"].Items ;
foreach (SPListItem item in list)
{
lblTitle.Text = item["Title"].ToString();
lblDescription.Text = item["Description"].ToString();
imgNews. = item[""].ToString();
Controls.Add(lblTitle);
Controls.Add(lblDescription);
}
}
}
}
}
}
我不知道使用图像或图像域控件从共享点自定义列表中显示我的图像。
请有人指出我正确的方向。
谢谢 哈
答案 0 :(得分:1)
这是我能提出的最简单的例子:
using System.ComponentModel;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
namespace TestPictureWebPart.PicWebPart
{
[ToolboxItemAttribute(false)]
public class PicWebPart : WebPart
{
protected override void CreateChildControls()
{
SPList list = SPContext.Current.Web.Lists["ImageList"];
SPListItemCollection items = list.Items;
foreach (SPListItem item in items)
{
string title = item[SPBuiltInFieldId.Title].ToString(); // or string title = item.Title;
SPFieldUrlValue picture = new SPFieldUrlValue(item["MyPicture"].ToString());
Image image = new Image();
image.ToolTip = title;
image.ImageUrl = picture.Url;
Controls.Add(image);
}
}
}
}
只是一个提示:使用SPBuiltInFieldId访问SharePoint中的现成列总是更好。
此外,在您的示例代码中...如果您的列表中有多个listitem,则您遇到了麻烦。您将为每个列表项使用相同的Web控件(例如标签),并在每次迭代中将它们添加到Controls集合中。