Retreiving List indhold via WebService i SharePoint 2003

Tilsæt WebReference til Lists.asmx i SharePoint-webstedet.

http://localhost / _vti_bin / Lists.asmx
(SharePoint virtuelle bibliotek URL / _vti_bin / Lists.asmx

skriver følgende metoder i din webservice.

private data.DataTable GetDataTableFromWSS(bool onlySchema)
{
string WssSiteUrl = http://192.168.111.21;
string WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists lister = nye WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;

lists.PreAuthenticate = true;
//du nødt til at passere listenavnet her
string CommandText = “Medarbejder Info”;
XmlNode ListCollectionNode = lists.GetListCollection();
XmlElement List = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Liste[@ Title = '{0}']”, CommandText), NameSpaceMgr);
hvis (Liste == null)
{
kaste nyt ArgumentException(String.Format(“Listen {0} kunne ikke findes i stedet {1}”, CommandText, WssSiteUrl));
}
string TechListName = List.GetAttribute(“Navn”);
data.DataTable resultat = ny data.DataTable(“Listen”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = ny System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames = ny System.Collections.Hashtable();
foreach (XmlElement Field i ListInfoNode.SelectNodes(“WSS:Fields / WSS:Field”, NameSpaceMgr))
{
hvis (Field.HasChildNodes)
{
foreach (XmlElement Fld i Field.SelectNodes(“WSS:Fields / WSS:Field”, NameSpaceMgr))
{
string = FIELDNAME Fld.GetAttribute(“Navn”);
string = FieldDisplayName Fld.GetAttribute(“DisplayName”);
hvis (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Feltnavn + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Field));
fieldRefs.AppendFormat(“”, Feltnavn);
DisplayNames.Add(FieldDisplayName, Feltnavn);
}
}
andet
{
string FeltNavn = Field.GetAttribute(“Navn”);
string FieldDisplayName = Field.GetAttribute(“DisplayName”);
hvis (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Feltnavn + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Field));
fieldRefs.AppendFormat(“”, Feltnavn);
DisplayNames.Add(FieldDisplayName, Feltnavn);
}
}
hvis (onlySchema) tilbagevenden resultat;
XmlElement felter = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, null, felter, “1000000”, null);
// Opslagsfelter altid starte med det numeriske ID, derefter ;# og derefter streng repræsentation.
// Vi er normalt kun interesseret i navnet, så vi fratage ID.
System.Text.RegularExpressions.Regex CheckLookup = ny System.Text.RegularExpressions.Regex(“^ D ;#”);

foreach (XmlElement Item i ItemsNode.SelectNodes(“rs:data / z:rækken”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn col i result.Columns)
{
hvis (Item.HasAttribute(“ows_” + (streng)DisplayNames[col.ColumnName]))
{
string val = Item.GetAttribute(“ows_” + (streng)DisplayNames[col.ColumnName]);
hvis (CheckLookup.IsMatch((streng)timer))
{
string valString = val som String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Tildeling af en streng til et felt, der forventer, at tal eller
// datetime værdier implicit konvertere dem
newRow[med] = H;
}
}
result.Rows.Add(newRow);
}
tilbagevenden resultat;
}

// Følgende funktion bruges til at få Navnerum

private statisk XmlNamespaceManager _nsmgr;
private statisk XmlNamespaceManager NameSpaceMgr
{

{
hvis (_nsmgr == null)
{
_nsmgr = ny XmlNamespaceManager(nye NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“med”, “UUID:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“DT”, “UUID:C2F41010-65B3-11d1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urne:skemaer-microsoft-com:sæt rækker”);
_nsmgr.AddNamespace(“fra”, “#RowsetSchema”);

}
tilbage _nsmgr;
}
}
privat Type TypeFromField(XmlElement felt)
{
kontakt (field.GetAttribute(“Type”))
{
tilfælde “DateTime”:
tilbage typeof(DateTime);
tilfælde “Integer”:
tilbage typeof(int);
tilfælde “Nummer”:
tilbage typeof(float);
standard:
tilbage typeof(streng);
}
}

4 kommentarer til retreiving List indhold gennem WebService i SharePoint 2003

Efterlad et svar

Du kan bruge disse HTML-tags

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