Voeg de WebReference aan de Lists.asmx in SharePoint-site.
http://localhost / _vti_bin / Lists.asmx
(SharePoint virtuele map URL / _vti_bin / Lists.asmx
Schrijf de volgende methoden in uw webservice.
particuliere data.DataTable GetDataTableFromWSS(bool onlySchema)
{
string WssSiteUrl = http://192.168.111.21;
string WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists lijsten = nieuwe WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//je moet de lijstnaam hier voorbij
string CommandText = “Werknemer Info”;
XmlNode ListCollectionNode = lists.GetListCollection();
XmlElement List = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Lijst[@ Title = '{0}']”, CommandText), NameSpaceMgr);
als (Lijst == null)
{
throw new ArgumentException(String.Format(“De lijst {0} kon niet worden gevonden op de site {1}”, CommandText, WssSiteUrl));
}
string TechListName = List.GetAttribute(“Naam”);
data.DataTable resultaat = nieuwe data.DataTable(“lijst”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = nieuwe System.Text.StringBuilder();
System.Collections.Hashtable displaynamen = nieuwe System.Collections.Hashtable();
foreach (XmlElement Veld in ListInfoNode.SelectNodes(“WSS:Velden / WSS:Gebied”, NameSpaceMgr))
{
als (Field.HasChildNodes)
{
foreach (XmlElement Fld in Field.SelectNodes(“WSS:Velden / WSS:Gebied”, NameSpaceMgr))
{
string Veldnaam = Fld.GetAttribute(“Naam”);
string FieldDisplayName = Fld.GetAttribute(“DisplayName”);
als (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Veldnaam + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Gebied));
fieldRefs.AppendFormat(“”, Veldnaam);
DisplayNames.Add(FieldDisplayName, Veldnaam);
}
}
anders
{
string Veldnaam = Field.GetAttribute(“Naam”);
string FieldDisplayName = Field.GetAttribute(“DisplayName”);
als (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Veldnaam + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Gebied));
fieldRefs.AppendFormat(“”, Veldnaam);
DisplayNames.Add(FieldDisplayName, Veldnaam);
}
}
als (onlySchema) rendement leiden;
XmlElement velden = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, nietig, velden, “1000000”, nietig);
// Opzoekvelden beginnen altijd met de numerieke ID, dan ;# en vervolgens de string representatie.
// We zijn normaal gesproken alleen geïnteresseerd in de naam, zodat we met het strippen van de ID.
System.Text.RegularExpressions.Regex CheckLookup = nieuwe System.Text.RegularExpressions.Regex(“^ D ;#”);
foreach (XmlElement item in ItemsNode.SelectNodes(“rs:datum / z:rij”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn col result.Columns)
{
als (Item.HasAttribute(“ows_” + (string)Displaynamen[col.ColumnName]))
{
string val = Item.GetAttribute(“ows_” + (string)Displaynamen[col.ColumnName]);
als (CheckLookup.IsMatch((string)verkiezingen))
{
string valString = val als String;
keuze = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Toewijzen van een string naar een veld dat getallen of verwacht
// datetime waarden impliciet converteren
newRow[met] = Keuze;
}
}
result.Rows.Add(newRow);
}
rendement leiden;
}
// De volgende functie wordt gebruikt om Naamruimten Get
private static XmlNamespaceManager _nsmgr;
private static XmlNamespaceManager NameSpaceMgr
{
te krijgen
{
als (_nsmgr == null)
{
_nsmgr = nieuwe XmlNamespaceManager(nieuwe NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com / sharepoint / soap /”);
_nsmgr.AddNamespace(“met”, “uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “uuid:C2F41010-65B3-11D1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urn:schema's-microsoft-com:rijenset”);
_nsmgr.AddNamespace(“van”, “#RowsetSchema”);
}
terug _nsmgr;
}
}
particuliere Type TypeFromField(XmlElement gebied)
{
schakelaar (field.GetAttribute(“Type”))
{
geval “DateTime”:
terug typeof(DateTime);
geval “Geheel getal”:
terug typeof(int);
geval “Aantal”:
terug typeof(zweven);
Standaard:
terug typeof(string);
}
}