Lisää webreference on Lists.asmx SharePoint-sivuston.
http://localhost / _vti_bin / Lists.asmx
(SharePoint virtuaalinen hakemisto URL / _vti_bin / Lists.asmx
kirjoittaa seuraavia menetelmiä your webservice.
yksityiset data.DataTable GetDataTableFromWSS(bool onlySchema)
{
string WssSiteUrl = http://192.168.111.21;
string WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists luettelot = new WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//sinun on läpäistävä List Name täällä
string CommandText = “Työsuhde Info”;
XmlNode ListCollectionNode = lists.GetListCollection();
XmlElement List = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Luettelo[@ Title = "{0}"]”, CommandText), NameSpaceMgr);
jos (Luettelo == null)
{
heittää uusi ArgumentException(String.Format(“Lista {0} ei löytynyt sivuston {1}”, CommandText, WssSiteUrl));
}
string TechListName = List.GetAttribute(“Nimi”);
data.DataTable tulos = uusi data.DataTable(“lista”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = uusi System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames = uusi System.Collections.Hashtable();
foreach (XmlElement Field in ListInfoNode.SelectNodes(“WSS:Fields / WSS:Kenttä”, NameSpaceMgr))
{
jos (Field.HasChildNodes)
{
foreach (XmlElement FLD Field.SelectNodes(“WSS:Fields / WSS:Kenttä”, NameSpaceMgr))
{
string = fieldname Fld.GetAttribute(“Nimi”);
string = FieldDisplayName Fld.GetAttribute(“DisplayName”);
jos (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Kenttä));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
muuta
{
string fieldname = Field.GetAttribute(“Nimi”);
string FieldDisplayName = Field.GetAttribute(“DisplayName”);
jos (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Kenttä));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
jos (onlySchema) paluu tulos;
XmlElement kentät = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, tyhjä, kentät, “1000000”, tyhjä);
// Hakukenttiä aina aloittaa numeerinen tunnus, sitten ;# ja sitten merkkijono edustus.
// Olemme yleensä kiinnostuneita vain nimi, joten nauhat tunnus.
System.Text.RegularExpressions.Regex CheckLookup = uusi System.Text.RegularExpressions.Regex(“^ D ;#”);
foreach (XmlElement alkio ItemsNode.SelectNodes(“rs:data / z:rivi”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn col vuonna result.Columns)
{
jos (Item.HasAttribute(“ows_” + (jono)DisplayNames[col.ColumnName]))
{
string val = Item.GetAttribute(“ows_” + (jono)DisplayNames[col.ColumnName]);
jos (CheckLookup.IsMatch((jono)tuntia))
{
string valString = val kuin String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Määrittäminen merkkijono kentän joka odottaa numeroita tai
// datetime arvot epäsuorasti muuntaa ne
newRow[kanssa] = H;
}
}
result.Rows.Add(newRow);
}
paluu tulos;
}
// Seuraavat toimintoa käytetään Get Nimiavaruuksien
private static XmlNamespaceManager _nsmgr;
private static XmlNamespaceManager NameSpaceMgr
{
saada
{
jos (_nsmgr == null)
{
_nsmgr = uusi XmlNamespaceManager(uusi NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“kanssa”, “UUID:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “UUID:C2F41010-65B3-11d1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “uurna:skeemoja-microsoft-com:RowSet”);
_nsmgr.AddNamespace(“alkaen”, “#RowsetSchema”);
}
palata _nsmgr;
}
}
yksityinen Tyyppi TypeFromField(XmlElement kenttä)
{
kytkin (field.GetAttribute(“Tyyppi”))
{
tapaus “DateTime”:
palata typeof(DateTime);
tapaus “Kokonaisluku”:
palata typeof(int);
tapaus “Numero”:
palata typeof(kellua);
oletusarvo:
palata typeof(jono);
}
}