Retreiving Lista Përmbajtja përmes WebService në SharePoint 2003

Shto webreference në Lists.asmx në faqen SharePoint.

http://localhost / _vti_bin / Lists.asmx
(SharePoint virtual Directory URL / _vti_bin / Lists.asmx

shkruaj metodat e mëposhtme në webservice tuaj.

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

lists.PreAuthenticate = true;
//ju duhet të kalojnë Lista emrin këtu
string CommandText = “Info punonjës”;
XmlNode ListCollectionNode = lists.GetListCollection();
XmlElement Lista = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Lista[@ Title = '{0}']”, CommandText), NameSpaceMgr);
nëse (Lista == null)
{
hedhin ArgumentException të re(String.Format(“Lista {0} nuk do të mund të gjendet në faqen e internetit {1}”, CommandText, WssSiteUrl));
}
string TechListName = List.GetAttribute(“Emër”);
Rezultati data.DataTable = data.DataTable i ri(“listë”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = System.Text.StringBuilder i ri();
DisplayNames System.Collections.Hashtable = System.Collections.Hashtable i ri();
foreach (XmlElement Field në ListInfoNode.SelectNodes(“WSS:Fushat / WSS:Fushë”, NameSpaceMgr))
{
nëse (Field.HasChildNodes)
{
foreach (XmlElement FLD në Field.SelectNodes(“WSS:Fushat / WSS:Fushë”, NameSpaceMgr))
{
string = FIELDNAME Fld.GetAttribute(“Emër”);
string = FieldDisplayName Fld.GetAttribute(“DisplayName”);
nëse (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Fushë));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
tjetër
{
string FieldName = Field.GetAttribute(“Emër”);
string FieldDisplayName = Field.GetAttribute(“DisplayName”);
nëse (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Fushë));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
nëse (onlySchema) rezultat i kthimit;
Fushat XmlElement = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, i pavlefshëm, fusha, “1000000”, i pavlefshëm);
// Fusha Lookup gjithmonë fillojnë me ID numerike, pastaj ;# dhe pastaj përfaqësim string.
// Ne jemi normalisht të interesuar vetëm në emër, kështu që ne zhvesh ID.
System.Text.RegularExpressions.Regex CheckLookup = ri System.Text.RegularExpressions.Regex(“^ D ;#”);

foreach (XmlElement Item në ItemsNode.SelectNodes(“rs:të dhënat / z:rresht”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn col në result.Columns)
{
nëse (Item.HasAttribute(“ows_” + (varg)DisplayNames[col.ColumnName]))
{
string val = Item.GetAttribute(“ows_” + (varg)DisplayNames[col.ColumnName]);
nëse (CheckLookup.IsMatch((varg)orë))
{
string valString = val si String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Caktimin e një varg në një fushë që pret numra ose
// Vlerat koha e datës implicite do të konvertojë ata
newRow[me] = H;
}
}
result.Rows.Add(newRow);
}
rezultat i kthimit;
}

// Funksioni i mëposhtëm është përdorur për të marrë hapësira

_nsmgr privat XmlNamespaceManager statike;
privat statike XmlNamespaceManager NameSpaceMgr
{
shkoj
{
nëse (_nsmgr == null)
{
_nsmgr = XmlNamespaceManager i ri(i ri NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“me”, “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(“nga”, “#RowsetSchema”);

}
kthehen _nsmgr;
}
}
Lloji TypeFromField privat(Fushë XmlElement)
{
ndryshim (field.GetAttribute(“Lloj”))
{
rast “DATETIME”:
kthehen typeof(DATETIME);
rast “Numër i plotë”:
kthehen typeof(int);
rast “Numër”:
kthehen typeof(nxjerr në shitje);
mospagim:
kthehen typeof(varg);
}
}

4 komente për Retreiving Lista Përmbajtja përmes WebService në SharePoint 2003

  • noreply@blogger.com (plumb)

    WssSite kundërshtojnë në këtë kod, Unë jam duke marrë gabim në këtë, “ju jeni të humbur një direktivë duke përdorur ose një referencë kuvendit?” ndonjë ide

  • noreply@blogger.com (Uday)

    Ka Bala,
    WssSite është një Webreference për lists.asmx

    Cheers,
    Uday

  • noreply@blogger.com (Jaya Pastro)

    I shkëlqyer. Thanks Uday. Your post saved me lot of time in my migration project 🙂

  • noreply@blogger.com (Uday)

    Ju jeni të mirëpritur Jaya

Leave a Reply

Ju mund të përdorni këto HTML tags

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