Adăugați webreference la Lists.asmx pe site-ul SharePoint.
HTTP://localhost / _vti_bin / Lists.asmx
(SharePoint director virtual URL / _vti_bin / Lists.asmx
scrie următoarele metode, în webservice tău.
privat data.DataTable GetDataTableFromWSS(bool onlySchema)
{
string WssSiteUrl = http://192.168.111.21;
string WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
Listele WssSite.Lists = noi WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//trebuie să treci listă numele aici
string CommandText = “Angajat Info”;
XMLNode ListCollectionNode = lists.GetListCollection();
XmlElement Listă = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“AAC:Lista[@ Titlul = '{0}"]”, CommandText), NameSpaceMgr);
în cazul în care (Listă == null)
{
arunca nou ArgumentException(String.Format(“Lista {0} nu a putut fi găsită în site-ul {1}”, CommandText, WssSiteUrl));
}
string TechListName = List.GetAttribute(“Numele”);
Rezultatul data.DataTable = new data.DataTable(“listă”);
XMLNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = new System.Text.StringBuilder();
Displaynames System.Collections.Hashtable = new System.Collections.Hashtable();
foreach (XmlElement teren în ListInfoNode.SelectNodes(“AAC:Domenii / AAC:Câmp”, NameSpaceMgr))
{
în cazul în care (Field.HasChildNodes)
{
foreach (XmlElement Fld în Field.SelectNodes(“AAC:Domenii / AAC:Câmp”, NameSpaceMgr))
{
string = Nume câmp Fld.GetAttribute(“Numele”);
string = FieldDisplayName Fld.GetAttribute(“Numele de afișare”);
în cazul în care (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Nume câmp + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Câmp));
fieldRefs.AppendFormat(“”, Nume câmp);
DisplayNames.Add(FieldDisplayName, Nume câmp);
}
}
altfel
{
string Nume câmp = Field.GetAttribute(“Numele”);
string FieldDisplayName = Field.GetAttribute(“Numele de afișare”);
în cazul în care (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Nume câmp + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Câmp));
fieldRefs.AppendFormat(“”, Nume câmp);
DisplayNames.Add(FieldDisplayName, Nume câmp);
}
}
în cazul în care (onlySchema) Rezultatul retur;
Câmpuri XmlElement = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, null, domenii, “1000000”, null);
// Lookup fields always start with the numeric ID, then ;# and then the string representation.
// We are normally only interested in the name, so we strip the ID.
System.Text.RegularExpressions.Regex CheckLookup = new System.Text.RegularExpressions.Regex(“^\d ;#”);
foreach (XmlElement Item in ItemsNode.SelectNodes(“rs:data/z:row”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn col in result.Columns)
{
în cazul în care (Item.HasAttribute(“ows_” + (şir)DisplayNames[col.ColumnName]))
{
string val = Item.GetAttribute(“ows_” + (şir)DisplayNames[col.ColumnName]);
în cazul în care (CheckLookup.IsMatch((şir)val))
{
string valString = val as String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Assigning a string to a field that expects numbers or
// datetime values will implicitly convert them
newRow[col] = val;
}
}
result.Rows.Add(newRow);
}
Rezultatul retur;
}
// The following Function is used to Get Namespaces
private static XmlNamespaceManager _nsmgr;
private static XmlNamespaceManager NameSpaceMgr
{
get
{
în cazul în care (_nsmgr == null)
{
_nsmgr = new XmlNamespaceManager(new NameTable());
_nsmgr.AddNamespace(“AAC”, “HTTP://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“cu”, “uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “uuid:C2F41010-65B3-11d1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urn:schemas-microsoft-com:rowset”);
_nsmgr.AddNamespace(“z”, “#RowsetSchema”);
}
return _nsmgr;
}
}
private Type TypeFromField(XmlElement field)
{
switch (field.GetAttribute(“Type”))
{
case “DateTime”:
return typeof(DateTime);
case “Integer”:
return typeof(int);
case “Number”:
return typeof(float);
default:
return typeof(şir);
}
}