Dodaj webreference na Lists.asmx na SharePoint web-mjestu.
http://localhost / _vti_bin / Lists.asmx
(SharePoint virtualni katalog URL / _vti_bin / Lists.asmx
pisati sljedeće metode u vašem webservice.
privatni data.DataTable GetDataTableFromWSS(bool onlySchema)
{
string WssSiteUrl = http://192.168.111.21;
string WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists popisi = Novi WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//morate proći popisu ime ovdje
Niz CommandText = “Zaposlenik Info”;
XmlNode ListCollectionNode = lists.GetListCollection();
XmlElement Lista = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Popis[@ Title = "{0}']”, CommandText), NameSpaceMgr);
ako (Popis == NULL)
{
baciti novo ArgumentException(String.Format(“Popis {0} Ne može se naći u mjestu {1}”, CommandText, WssSiteUrl));
}
string TechListName = List.GetAttribute(“Ime”);
data.DataTable Rezultat = Novi data.DataTable(“popis”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = Novi System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames = Novi System.Collections.Hashtable();
foreach (XmlElement polja u ListInfoNode.SelectNodes(“WSS:Polja / WSS:Polje”, NameSpaceMgr))
{
ako (Field.HasChildNodes)
{
foreach (XmlElement FLD u Field.SelectNodes(“WSS:Polja / WSS:Polje”, NameSpaceMgr))
{
string = FIELDNAME Fld.GetAttribute(“Ime”);
string = FieldDisplayName Fld.GetAttribute(“DisplayName”);
ako (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Podataka, Naziv Polja + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Polje));
fieldRefs.AppendFormat(“”, Podataka, Naziv Polja);
DisplayNames.Add(FieldDisplayName, Podataka, Naziv Polja);
}
}
drugo
{
string FieldName = Field.GetAttribute(“Ime”);
string FieldDisplayName = Field.GetAttribute(“DisplayName”);
ako (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Podataka, Naziv Polja + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Polje));
fieldRefs.AppendFormat(“”, Podataka, Naziv Polja);
DisplayNames.Add(FieldDisplayName, Podataka, Naziv Polja);
}
}
ako (onlySchema) Povratak rezultat;
XmlElement polja = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, nula, polja, “1000000”, nula);
// Potraži polja uvijek početi s numeričkom ID, onda ;# a zatim niz zastupanje.
// Mi smo obično zanima samo ime, pa smo strip ID.
System.Text.RegularExpressions.Regex CheckLookup = Novi System.Text.RegularExpressions.Regex(“^ D ;#”);
foreach (XmlElement Stavka u ItemsNode.SelectNodes(“rs:Podaci / z:red”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn Col u result.Columns)
{
ako (Item.HasAttribute(“ows_” + (niz)DisplayNames[col.ColumnName]))
{
Niz val = Item.GetAttribute(“ows_” + (niz)DisplayNames[col.ColumnName]);
ako (CheckLookup.IsMatch((niz)vrijeme))
{
string valString = val kao String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Dodjela niz na području koje očekuje brojeve ili
// Dio sekunde u kojem vrijednosti implicitno će ih pretvoriti
newRow[s] = H;
}
}
result.Rows.Add(newRow);
}
Povratak rezultat;
}
// Sljedeća funkcija se koriste kako bi dobili namespaces
private static XmlNamespaceManager _nsmgr;
private static XmlNamespaceManager NameSpaceMgr
{
dobiti
{
ako (_nsmgr == NULL)
{
_nsmgr = Novi XmlNamespaceManager(Novi NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“s”, “UUID:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “UUID:C2F41010-65B3-11d1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urna:sheme-microsoft-com:rowset”);
_nsmgr.AddNamespace(“iz”, “#RowsetSchema”);
}
povratak _nsmgr;
}
}
privatni Tip TypeFromField(XmlElement polje)
{
prekidač (field.GetAttribute(“Vrsta”))
{
slučaj “Dio sekunde u kojem”:
povratak typeof(Dio sekunde u kojem);
slučaj “Integer”:
povratak typeof(int);
slučaj “Broj”:
povratak typeof(plovak);
zadana:
povratak typeof(niz);
}
}