首先建立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);
}
就可以了