Retreiving Seznam vsebin z WebService v SharePoint 2003

Dodajte webreference na Lists.asmx na mestu SharePoint.

http://localhost / _vti_bin / Lists.asmx
(SharePoint virtualni imenik URL / _vti_bin / Lists.asmx

napisati naslednje metode v vašem WebService.

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

lists.PreAuthenticate = true;
//moraš opraviti Seznam Ime tukaj
Niz CommandText = “Zaposleni Info”;
XmlNode = ListCollectionNode lists.GetListCollection();
Seznam XmlElement = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Seznam[@ Naslov = "{0}"]”, CommandText), NameSpaceMgr);
če (Seznam == null)
{
vrgel novo ArgumentException(String.Format(“Seznam {0} ni bilo mogoče najti v mestu {1}”, CommandText, WssSiteUrl));
}
Niz TechListName = List.GetAttribute(“Ime”);
data.DataTable rezultat = new data.DataTable(“Seznam”);
XmlNode ListInfoNode = lists.GetList(TechListName);
FieldRefs System.Text.StringBuilder = new System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames = new System.Collections.Hashtable();
foreach (XmlElement Polje v ListInfoNode.SelectNodes(“WSS:Polj / WSS:Polje”, NameSpaceMgr))
{
če (Field.HasChildNodes)
{
foreach (XmlElement FLD v Field.SelectNodes(“WSS:Polj / WSS:Polje”, NameSpaceMgr))
{
Niz FieldName = Fld.GetAttribute(“Ime”);
Niz FieldDisplayName = Fld.GetAttribute(“DisplayName”);
če (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Polje));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
drugega
{
Niz FieldName = Field.GetAttribute(“Ime”);
Niz FieldDisplayName = Field.GetAttribute(“DisplayName”);
če (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Polje));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
če (onlySchema) vrne rezultat;
XmlElement polja = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, nič, polja, “1000000”, nič);
// Lookup področja se vedno začne s številčno ID, Nato ;# nato pa niz predstavitev.
// Mi smo ponavadi zanima samo ime, zato smo strip ID.
System.Text.RegularExpressions.Regex CheckLookup = new System.Text.RegularExpressions.Regex(“^ D ;#”);

foreach (XmlElement točka v ItemsNode.SelectNodes(“rs:Datum / z:vrstica”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn kotiček v result.Columns)
{
če (Item.HasAttribute(“ows_” + (string)DisplayNames[col.ColumnName]))
{
Niz val = Item.GetAttribute(“ows_” + (string)DisplayNames[col.ColumnName]);
če (CheckLookup.IsMatch((string)val))
{
niz = valString izbira String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Dodeljevanje niz na polja, ki pričakuje, številke ali
// Čas pomnilnika vrednosti bo implicitno jih spremenijo
newRow[s] = Val;
}
}
result.Rows.Add(newRow);
}
vrne rezultat;
}

// Naslednja funkcija se uporablja za Get Imenski prostori

zasebnega statični XmlNamespaceManager _nsmgr;
zasebnega statični XmlNamespaceManager NameSpaceMgr
{
dobili
{
če (_nsmgr == null)
{
_nsmgr = new XmlNamespaceManager(Nova NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com / SharePoint / milo /”);
_nsmgr.AddNamespace(“z”, “UUID:BDC6E3F0-6DA3-11D1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “UUID:C2F41010-65B3-11D1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “žaro:sheme-microsoft-com:niza vrstic”);
_nsmgr.AddNamespace(“od”, “#RowsetSchema”);

}
vrnitev _nsmgr;
}
}
zasebno Vrsta TypeFromField(XmlElement polje)
{
vklopite (field.GetAttribute(“Tip”))
{
primeru “DateTime”:
vrnitev vrste uporabljene(DateTime);
primeru “Celo število”:
vrnitev vrste uporabljene(int);
primeru “Število”:
vrnitev vrste uporabljene(float);
Privzeto:
vrnitev vrste uporabljene(string);
}
}

4 comments to Retreiving List Content through WebService in SharePoint 2003

  • noreply@blogger.com (bala)

    WssSite object on this code, I am getting error on this, “you are missing a using directive or an assembly reference?” any idea

  • noreply@blogger.com (Uday)

    Hi Bala,
    WssSite is an Webreference for the lists.asmx

    Cheers,
    Uday

  • noreply@blogger.com (Jaya Borra)

    Excellent. Thanks Uday. Your post saved me lot of time in my migration project 🙂

  • noreply@blogger.com (Uday)

    You are welcome Jaya

Leave a Reply

Lahko uporabite te HTML oznake

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