SliverLight读取SharePoint的图片库作为数据源

首先建立1个XML叫 clientaccesspolicy.xml

内容:

<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

 

然后丢入你的sharepoint网站下

 

 

代码部分:

public MainPage()
        {
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(Page_Loaded);

        }

 

 public void Page_Loaded(object sender, RoutedEventArgs e)
        {
            //这个sUrl是服务器版本的
            string sUrl = "http://localhost:29089/_vti_bin/owssvr.dll?Cmd=Display&List={4579C6FD-16BE-4026-83EF-1969BE2CB1AF}&XMLDATA=TRUE";
            WebClient sp = new WebClient();
            sp.OpenReadCompleted += new OpenReadCompletedEventHandler(LoadData);
            sp.OpenReadAsync(new Uri(sUrl,UriKind.RelativeOrAbsolute));
        }

 

sUrl的格式是 http://【站名】/_vti_bin/owssvr.dll?Cmd=Display&List={List的Grid}&XMLDATA=TRUE

List的Grid可以在Sharepoint Designer中得到

 

void LoadData(object sender, OpenReadCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                Stream stream = e.Result;

                StreamReader streamReader = new StreamReader(stream);
                string xmlStr = string.Empty;
                while (streamReader.Peek() > -1)
                {
                    xmlStr+= streamReader.ReadLine();
                }
                clientListImages = new List<ClientList>();
                StringReader sr = new StringReader(xmlStr);
                XDocument xdoc = XDocument.Parse(xmlStr);

                //解析带命名空间的xml

                XNamespace rs = "urn:schemas-microsoft-com:rowset";
                XNamespace z = "#RowsetSchema";

                IEnumerable<XElement> comments = xdoc.Descendants(z + "row");

                foreach (XElement comment in comments)
                {

                    XElement xelement = comment;
                   string imageIdStr=  xelement.Attribute("ows_ImageId").Value;
                   int imageId = 0;
                   if (imageIdStr.Contains('.'))
                   {
                       string[] source = imageIdStr.Split('.');

                       imageId = Convert.ToInt32(source[0]);
                   }
                   else
                   {
                       imageId = Convert.ToInt32(imageIdStr);
                   }
                   ClientList clientListImage = new ClientList();
                   clientListImage.ImageId = imageId;
                   clientListImage.ImageName = xelement.Attribute("ows_ImageName").Value;

                   //if (xelement.Attribute("ows_RequiredField").Value.Contains("http"))
                   //    clientListImage.ImageUri = new Uri(xelement.Attribute("ows_RequiredField").Value, UriKind.Absolute);
                   //else
                   //    clientListImage.ImageUri = new Uri(xelement.Attribute("ows_RequiredField").Value, UriKind.Relative);
                    //这里也是服务器地址
                   clientListImage.ImageUri = new Uri("http://localhost:29089/" + xelement.Attribute("ows_RequiredField").Value, UriKind.Absolute);
                   clientListImage.ImageRedirectUrl = xelement.Attribute("ows_ImageRedirectUrl").Value;
                  
                   clientListImages.Add(clientListImage);

                }

                ImagesListBox.ItemsSource = clientListImages.Skip((PageNumber) * PageIndex).Take(3);


}

 

就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值