Přidat do webreference Lists.asmx v SharePoint.
http://localhost / _vti_bin / Lists.asmx
(SharePoint virtuální adresáře URL / _vti_bin / Lists.asmx
napsat následující metody ve vaší webové služby.
soukromé data.DataTable GetDataTableFromWSS(bool onlySchema)
{
Řetězec WssSiteUrl = http://192.168.111.21;
Řetězec WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists seznam = new WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//musíte projít List Name zde
Řetězec CommandText = “Zaměstnanecké Info”;
XMLNode ListCollectionNode = lists.GetListCollection();
XmlElement List = (XmlElement)ListCollectionNode.SelectSingleNode(String.format(“WSS:Seznam[@ Title = '{0}"]”, CommandText), NameSpaceMgr);
pokud (Seznam == null)
{
throw new ArgumentException(String.format(“Seznam {0} nelze nalézt na webu {1}”, CommandText, WssSiteUrl));
}
Řetězec TechListName = List.GetAttribute(“Jméno”);
data.DataTable vysledek = new data.DataTable(“Seznam”);
XMLNode uzel = listinfo lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = new System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames = new System.Collections.Hashtable();
foreach (XmlElement Pole v ListInfoNode.SelectNodes(“WSS:Pole / WSS:Pole”, NameSpaceMgr))
{
pokud (Field.HasChildNodes)
{
foreach (XmlElement Fld v Field.SelectNodes(“WSS:Pole / WSS:Pole”, NameSpaceMgr))
{
Řetězec FieldName = Fld.GetAttribute(“Jméno”);
Řetězec FieldDisplayName = Fld.GetAttribute(“DisplayName”);
pokud (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Název pole + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Pole));
fieldRefs.AppendFormat(“”, Název pole);
DisplayNames.Add(FieldDisplayName, Název pole);
}
}
jiného
{
Řetězec FieldName = Field.GetAttribute(“Jméno”);
Řetězec FieldDisplayName = Field.GetAttribute(“DisplayName”);
pokud (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Název pole + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Pole));
fieldRefs.AppendFormat(“”, Název pole);
DisplayNames.Add(FieldDisplayName, Název pole);
}
}
pokud (onlySchema) return vysledek;
XmlElement pole = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XMLNode ItemsNode = lists.GetListItems(TechListName, “”, nulový, pole, “1000000”, nulový);
// Vyhledávací pole vždy začínají číselné ID, pak ;# a pak řetězec reprezentace.
// Jsme běžně zájem pouze v názvu, tak jsme proužek ID.
System.Text.RegularExpressions.Regex CheckLookup = new System.Text.RegularExpressions.Regex(“^ D ;#”);
foreach (XmlElement položku v ItemsNode.SelectNodes(“rs:Datum / z:řádek”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (result.Columns data.DataColumn sl)
{
pokud (Item.HasAttribute(“ows_” + (Řetězec)DisplayNames[col.ColumnName]))
{
řetězec val = Item.GetAttribute(“ows_” + (Řetězec)DisplayNames[col.ColumnName]);
pokud (CheckLookup.IsMatch((Řetězec)volby))
{
Řetězec valString = val jako String;
volba = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Přiřazení řetězce do pole, které očekává, čísla nebo
// datetime hodnoty budou implicitně převést
newRow[s] = Volba;
}
}
result.Rows.Add(newRow);
}
return vysledek;
}
// Následující funkce slouží k nám Jmenné prostory
private static XmlNamespaceManager _nsmgr;
private static XmlNamespaceManager NameSpaceMgr
{
dostat
{
pokud (_nsmgr == null)
{
_nsmgr = new XmlNamespaceManager(nové NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com / sharepoint / mýdlo /”);
_nsmgr.AddNamespace(“s”, “UUID:BDC6E3F0-6DA3-11D1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “UUID:C2F41010-65B3-11D1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urna:schémata-microsoft-com:řádků”);
_nsmgr.AddNamespace(“ze dne”, “#RowsetSchema”);
}
návrat _nsmgr;
}
}
Typ soukromé TypeFromField(XmlElement pole)
{
přepínač (field.GetAttribute(“Typ”))
{
případě “DateTime”:
návrat typeof(DateTime);
případě “Celé číslo”:
návrat typeof(int);
případě “Číslo”:
návrat typeof(plovák);
výchozí:
návrat typeof(Řetězec);
}
}