Treść Lista Retreiving przez WebService w SharePoint 2003

Dodaj webreference do Lists.asmx w witrynie programu SharePoint.

http://localhost / _vti_bin / Lists.asmx
(SharePoint wirtualny katalog URL / _vti_bin / Lists.asmx

napisać następujące metody w swoim usługa.

prywatny data.DataTable GetDataTableFromWSS(bool onlySchema)
{
ciąg WssSiteUrl = http://192.168.111.21;
ciąg WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists listy znaku = WssSite.Lists nowe();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;

lists.PreAuthenticate = true;
//musisz przekazać nazwę listy tutaj
ciąg CommandText = “Informacje pracownik”;
XMLNode = lists.GetListCollection ListCollectionNode();
XmlElement list = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Lista[@ Title = '{0}"]”, CommandText), NameSpaceMgr);
jeśli (Lista == 0)
{
throw new ArgumentException(String.Format(“Lista {0} nie można znaleźć w witrynie {1}”, CommandText, WssSiteUrl));
}
TechListName string = List.GetAttribute(“Nazwa”);
Wynik data.DataTable = new data.DataTable(“lista”);
Węzeł XMLNode = lists.GetList mailowej(TechListName);
Bibl. System.Text.StringBuilder pole = new System.Text.StringBuilder();
DisplayNames System.Collections.Hashtable = new System.Collections.Hashtable();
foreach (Pole XmlElement w ListInfoNode.SelectNodes(“WSS:Pola / WSS:Pole”, NameSpaceMgr))
{
jeśli (Field.HasChildNodes)
{
foreach (Fld XmlElement w Field.SelectNodes(“WSS:Pola / WSS:Pole”, NameSpaceMgr))
{
ciąg FieldName = Fld.GetAttribute(“Nazwa”);
ciąg FieldDisplayName = Fld.GetAttribute(“DisplayName”);
jeśli (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, Od polu Typ(Pole));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
więcej
{
ciąg FieldName = Field.GetAttribute(“Nazwa”);
ciąg FieldDisplayName = Field.GetAttribute(“DisplayName”);
jeśli (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, Od polu Typ(Pole));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
jeśli (onlySchema) return wynik;
Pola XmlElement = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XMLNode ItemsNode znaku = lists.GetListItems(TechListName, “”, NIC, pola, “1000000”, NIC);
// Pola odnośników zawsze zaczynają się od numerycznym ID, następnie ;# a następnie reprezentacja ciąg.
// Jesteśmy zwykle zainteresowany tylko nazwy, więc rozebrać ID.
CheckLookup System.Text.RegularExpressions.Regex = new System.Text.RegularExpressions.Regex(“^ D ;#”);

foreach (Przedmiot XmlElement w ItemsNode.SelectNodes(“rs:Data / z:rząd”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn kapusta w result.Columns)
{
jeśli (Item.HasAttribute(“ows_” + (string)DisplayNames[col.ColumnName]))
{
ciąg val Item.GetAttribute =(“ows_” + (string)DisplayNames[col.ColumnName]);
jeśli (CheckLookup.IsMatch((string)val))
{
ciąg val = valString jako String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Przypisywanie łańcucha do pola, które spodziewa się liczby lub
// datetime wartości będą niejawnie konwertować je
newRow[z] = Val;
}
}
result.Rows.Add(newRow);
}
return wynik;
}

// Poniższa funkcja jest używana do pobierania Przestrzenie nazw

private static _nsmgr XmlNamespaceManager;
private static NameSpaceMgr XmlNamespaceManager
{
dostać
{
jeśli (_nsmgr == null)
{
_nsmgr = new XmlNamespaceManager(nowy NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com / SharePoint / mydło /”);
_nsmgr.AddNamespace(“z”, “uuid:BDC6E3F0-6DA3-11D1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “uuid:C2F41010-65B3-11D1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urna:schemas-microsoft-com:zestaw wierszy”);
_nsmgr.AddNamespace(“z”, “#RowsetSchema”);

}
powrót _nsmgr;
}
}
Private Type Typ Z Field(Pole XmlElement)
{
przełączyć (field.GetAttribute(“Typ”))
{
przypadek “DateTime”:
powrót typeof(DateTime);
przypadek “Liczba całkowita”:
powrót typeof(int);
przypadek “Liczba”:
powrót typeof(unosić się);
domyślna:
powrót typeof(string);
}
}

4 komentarze do Retreiving zawartości listy poprzez WebService w SharePoint 2003

Leave a Reply

Możesz użyć tych tagów HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>