Retreiving Seznam obsah prostřednictvím WebService v SharePoint 2003

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);
}
}

4 komentáře k Retreiving Seznam obsah prostřednictvím WebService v SharePoint 2003

  • noreply@blogger.com (kulka)

    WssSite objektu na tento kód, Dostávám chybu na této, “vám chybí pomocí směrnice nebo montážní odkaz?” nějakou představu

  • noreply@blogger.com (Uday)

    Ahoj Bala,
    WssSite je Webreference pro lists.asmx

    Na zdraví,
    Uday

  • noreply@blogger.com (Jaya vrtačka)

    Vynikající. Díky Uday. Váš příspěvek mi ušetřil spoustu času ve svém migračního projektu 🙂

  • noreply@blogger.com (Uday)

    Jste vítáni Jaya

Dovolená jeden Namítat

Můžete použít tyto HTML tagy

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