Dodaj webreference na Lists.asmx na SharePoint web-mjestu.
http://localhost / _vti_bin / Lists.asmx
(SharePoint virtualni katalog URL / _vti_bin / Lists.asmx
pisati sljedeće metode u vašem webservice.
privatni data.DataTable GetDataTableFromWSS(bool onlySchema)
{
string WssSiteUrl = http://192.168.111.21;
string WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists popisi = Novi WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//morate proći popisu ime ovdje
Niz CommandText = “Zaposlenik Info”;
XmlNode ListCollectionNode = lists.GetListCollection();
XmlElement Lista = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Popis[@ Title = "{0}']”, CommandText), NameSpaceMgr);
ako (Popis == NULL)
{
baciti novo ArgumentException(String.Format(“Popis {0} Ne može se naći u mjestu {1}”, CommandText, WssSiteUrl));
}
string TechListName = List.GetAttribute(“Ime”);
data.DataTable Rezultat = Novi data.DataTable(“popis”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = Novi System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames = Novi System.Collections.Hashtable();
foreach (XmlElement polja u ListInfoNode.SelectNodes(“WSS:Polja / WSS:Polje”, NameSpaceMgr))
{
ako (Field.HasChildNodes)
{
foreach (XmlElement FLD u Field.SelectNodes(“WSS:Polja / WSS:Polje”, NameSpaceMgr))
{
string = FIELDNAME Fld.GetAttribute(“Ime”);
string = FieldDisplayName Fld.GetAttribute(“DisplayName”);
ako (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Podataka, Naziv Polja + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Polje));
fieldRefs.AppendFormat(“”, Podataka, Naziv Polja);
DisplayNames.Add(FieldDisplayName, Podataka, Naziv Polja);
}
}
drugo
{
string FieldName = Field.GetAttribute(“Ime”);
string FieldDisplayName = Field.GetAttribute(“DisplayName”);
ako (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Podataka, Naziv Polja + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Polje));
fieldRefs.AppendFormat(“”, Podataka, Naziv Polja);
DisplayNames.Add(FieldDisplayName, Podataka, Naziv Polja);
}
}
ako (onlySchema) Povratak rezultat;
XmlElement polja = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, nula, polja, “1000000”, nula);
// Potraži polja uvijek početi s numeričkom ID, onda ;# a zatim niz zastupanje.
// Mi smo obično zanima samo ime, pa smo strip ID.
System.Text.RegularExpressions.Regex CheckLookup = Novi System.Text.RegularExpressions.Regex(“^ D ;#”);
foreach (XmlElement Stavka u ItemsNode.SelectNodes(“rs:Podaci / z:red”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn Col u result.Columns)
{
ako (Item.HasAttribute(“ows_” + (niz)DisplayNames[col.ColumnName]))
{
Niz val = Item.GetAttribute(“ows_” + (niz)DisplayNames[col.ColumnName]);
ako (CheckLookup.IsMatch((niz)vrijeme))
{
string valString = val kao String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Dodjela niz na području koje očekuje brojeve ili
// Dio sekunde u kojem vrijednosti implicitno će ih pretvoriti
newRow[s] = H;
}
}
result.Rows.Add(newRow);
}
Povratak rezultat;
}
// Sljedeća funkcija se koriste kako bi dobili namespaces
private static XmlNamespaceManager _nsmgr;
private static XmlNamespaceManager NameSpaceMgr
{
dobiti
{
ako (_nsmgr == NULL)
{
_nsmgr = Novi XmlNamespaceManager(Novi NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“s”, “UUID:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “UUID:C2F41010-65B3-11d1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urna:sheme-microsoft-com:rowset”);
_nsmgr.AddNamespace(“iz”, “#RowsetSchema”);
}
povratak _nsmgr;
}
}
privatni Tip TypeFromField(XmlElement polje)
{
prekidač (field.GetAttribute(“Vrsta”))
{
slučaj “Dio sekunde u kojem”:
povratak typeof(Dio sekunde u kojem);
slučaj “Integer”:
povratak typeof(int);
slučaj “Broj”:
povratak typeof(plovak);
zadana:
povratak typeof(niz);
}
}
WssSite prigovoriti na ovim kodom, Ja sam uzimajući greška na tome, “vi ste nedostaje pomoću direktivu ili montažni referencu?” Bilo koji ideja
Postoji Bala,
WssSite je Webreference za lists.asmx
Živjeli,
Uday
Izvrstan. Hvala Uday. Your post saved me lot of time in my migration project 🙂
Vi ste dobrodošli Jaya