c# - 如何通过 Silverlight 客户端对象模型从 SharePoint 检索列表项的附件,或至少检索附件的路径?

标签 c# silverlight-4.0 sharepoint-2010

我有一个 SharePoint 网站,我正在使用 Silverlight 客户端对象模型放置 Silverlight 前端。我需要为其提取数据的列表之一有附件。我需要找到一种方法来列出这些附件,但我似乎找不到这样做的方法。

ListItem 上有一个“附件”字段,但它只是一个 bool 值,表明附件是否存在。

我已经看到很多使用 SPListItem 的例子,但是我该如何使用 Silverlight 客户端对象模型来实现呢?

最佳答案

在 ScottyG30 的回答和 this thread 上的回答的帮助下,我也遇到了这个问题。我写了一个从 ListItem 中检索附件的函数:

// this method needs to be executed in background thread
public String[] GetAttachments(ClientContext ctx, List list, ListItem item)
{
    // these properties can be loaded in advance, outside of this method
    ctx.Load(list, l => l.RootFolder.ServerRelativeUrl);
    ctx.Load(ctx.Site, s=>s.Url);
    ctx.ExecuteQuery();

    // get the item's attachments folder 
    Folder attFolder = ctx.Web.GetFolderByServerRelativeUrl( list.RootFolder.ServerRelativeUrl + "/Attachments/" + item.Id);
    FileCollection files = attFolder.Files;
    // I needed only urls, so I am loading just them
    ctx.Load(files, fs => fs.Include(f => f.ServerRelativeUrl));
    ctx.ExecuteQuery();

    // now you have collection of files
    return (from file in files select ctx.Site.Url + file.ServerRelativeUrl).ToArray();
}

虽然这对我有用,但当您需要大列表中所有项目的附件(url)时(每个项目都在执行查询),在我看来这并不是最佳解决方案。

关于c# - 如何通过 Silverlight 客户端对象模型从 SharePoint 检索列表项的附件,或至少检索附件的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6525476/

相关文章:

c# - 我们还应该使用服务器端网格还是 Javascript 网格?

c# - 在不重新创建菜单的情况下在 C# 中动态过滤菜单 (ContextMenuStrip)?

c# - 谷歌分析类似工具

c# - 具有 RIA 服务 + Entity Framework 的 silverlight 4 的身份验证/授权

javascript - RegisterClientScriptCode 在部分回发后不起作用

sharepoint - 如何将 Web 部件添加到 sharepoint 2010 中的 ListView ?

c# - 返回开始页面后 Windows 应用商店应用程序崩溃

wpf - 是否可以在 WPF 和 Silverlight 中开发一个应用程序?

c# - 数据绑定(bind)到 ComboBox 中的 CollectionViewSource 时如何保留 CurrentItem 的双向绑定(bind)

javascript - 使用 Sharepoint 2010 内容编辑器时 HTML 外部 CSS 和 Javascript 的路径