Al recuperar la llista de continguts a través de WebService en SharePoint 2003

Afegiu el Webreference a la Lists.asmx en lloc de SharePoint.

http://localhost / _vti_bin / Lists.asmx
(SharePoint virtuals URL Directori / _vti_bin / Lists.asmx

escriure els següents mètodes en el seu servei web.

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

lists.PreAuthenticate = true;
//vostè ha de passar el nom de la llista aquí
cadena CommandText = “Informació de l'empleat”;
XmlNode = ListCollectionNode lists.GetListCollection();
XmlElement llista = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Llista[@ Title = '{0}’]”, CommandText), NameSpaceMgr);
si (Llista == null)
{
llançar nous ArgumentException(String.Format(“La llista {0} No es pot trobar al lloc {1}”, CommandText, WssSiteUrl));
}
TechListName cadena = List.GetAttribute(“Nom”);
data.DataTable resultat = new data.DataTable(“llista”);
Node XmlNode = listinfo lists.GetList(TechListName);
FieldRefs System.Text.StringBuilder = new System.Text.StringBuilder();
DisplayNames System.Collections.Hashtable = System.Collections.Hashtable nou();
foreach (XmlElement de camp en ListInfoNode.SelectNodes(“WSS:Camps / WSS:Camp”, NameSpaceMgr))
{
si (Field.HasChildNodes)
{
foreach (XmlElement Fld en Field.SelectNodes(“WSS:Camps / WSS:Camp”, NameSpaceMgr))
{
FieldName cadena = Fld.GetAttribute(“Nom”);
FieldDisplayName cadena = Fld.GetAttribute(“DisplayName”);
si (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Camp));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
més
{
FieldName cadena = Field.GetAttribute(“Nom”);
FieldDisplayName cadena = Field.GetAttribute(“DisplayName”);
si (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Camp));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
si (onlySchema) return resultat;
Camps XmlElement = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode = ItemsNode lists.GetListItems(TechListName, “”, nul, camps, “1000000”, nul);
// Els camps de recerca sempre comença amb l'identificador numèric, llavors ;# i la representació de cadena.
// Estem normalment només està interessat en el nom, per la qual cosa tira de la ID.
CheckLookup System.Text.RegularExpressions.Regex = new System.Text.RegularExpressions.Regex(“^ D ;#”);

foreach (XmlElement article en ItemsNode.SelectNodes(“rs:data / z:fila”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (result.Columns data.DataColumn col)
{
si (Item.HasAttribute(“ows_” + (cadena)DisplayNames[col.ColumnName]))
{
cadena de val = Item.GetAttribute(“ows_” + (cadena)DisplayNames[col.ColumnName]);
si (CheckLookup.IsMatch((cadena)elecció))
{
cadena valString = val com String;
= Elecció valString.Substring(valString.IndexOf(“#”) + 1);
}
// Assignant una cadena a un camp que espera que els números o
// Els valors de data i hora implícitament convertir
newRow[amb] = Elecció;
}
}
result.Rows.Add(newRow);
}
return resultat;
}

// La següent funció es fa servir per obtenir espais de noms

_nsmgr privat XmlNamespaceManager estàtica;
NameSpaceMgr privat XmlNamespaceManager estàtica
{
obtenir
{
si (_nsmgr == null)
{
_nsmgr = new XmlNamespaceManager(nova NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com / sharepoint / sabó /”);
_nsmgr.AddNamespace(“amb”, “uuid:BDC6E3F0-6DA3-11D1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “uuid:C2F41010-65B3-11D1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urna:schemas-microsoft-com:conjunt de files”);
_nsmgr.AddNamespace(“de”, “#RowsetSchema”);

}
tornar _nsmgr;
}
}
privat TypeFromField Tipus(XmlElement camp)
{
interruptor (field.GetAttribute(“Tipus”))
{
cas “Datetime”:
tornar typeof(Datetime);
cas “Sencer”:
tornar typeof(int);
cas “Número”:
tornar typeof(flotador);
defecte:
tornar typeof(cadena);
}
}

4 comentaris en recuperar contingut de la llista a través de WebService en SharePoint 2003

  • noreply@blogger.com (bala)

    WssSite objecte d'aquest codi, M'estic fent en aquest error, “es troba a faltar una directiva using o una referència d'acoblament?” qualsevol idea

  • noreply@blogger.com (Uday)

    Hola Bala,
    WssSite és un Webreference per al lists.asmx

    Aplaudiments,
    Uday

  • noreply@blogger.com (Jaya Trepant)

    Excel lent. Gràcies Uday. Your post saved me lot of time in my migration project 🙂

  • noreply@blogger.com (Uday)

    Vostè és benvingut Jaya

Deixa una resposta

Vostè pot utilitzar aquestes etiquetes HTML

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