Adăugați webreference la Lists.asmx pe site-ul SharePoint.
HTTP://localhost / _vti_bin / Lists.asmx
(SharePoint director virtual URL / _vti_bin / Lists.asmx
scrie următoarele metode, în webservice tău.
privat data.DataTable GetDataTableFromWSS(bool onlySchema)
{
string WssSiteUrl = http://192.168.111.21;
string WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
Listele WssSite.Lists = noi WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//trebuie să treci listă numele aici
string CommandText = “Angajat Info”;
XMLNode ListCollectionNode = lists.GetListCollection();
XmlElement Listă = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“AAC:Lista[@ Titlul = '{0}"]”, CommandText), NameSpaceMgr);
în cazul în care (Listă == null)
{
arunca nou ArgumentException(String.Format(“Lista {0} nu a putut fi găsită în site-ul {1}”, CommandText, WssSiteUrl));
}
string TechListName = List.GetAttribute(“Numele”);
Rezultatul data.DataTable = new data.DataTable(“listă”);
XMLNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = new System.Text.StringBuilder();
Displaynames System.Collections.Hashtable = new System.Collections.Hashtable();
foreach (XmlElement teren în ListInfoNode.SelectNodes(“AAC:Domenii / AAC:Câmp”, NameSpaceMgr))
{
în cazul în care (Field.HasChildNodes)
{
foreach (XmlElement Fld în Field.SelectNodes(“AAC:Domenii / AAC:Câmp”, NameSpaceMgr))
{
string = Nume câmp Fld.GetAttribute(“Numele”);
string = FieldDisplayName Fld.GetAttribute(“Numele de afișare”);
în cazul în care (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Nume câmp + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Câmp));
fieldRefs.AppendFormat(“”, Nume câmp);
DisplayNames.Add(FieldDisplayName, Nume câmp);
}
}
altfel
{
string Nume câmp = Field.GetAttribute(“Numele”);
string FieldDisplayName = Field.GetAttribute(“Numele de afișare”);
în cazul în care (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Nume câmp + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Câmp));
fieldRefs.AppendFormat(“”, Nume câmp);
DisplayNames.Add(FieldDisplayName, Nume câmp);
}
}
în cazul în care (onlySchema) Rezultatul retur;
Câmpuri XmlElement = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, null, domenii, “1000000”, null);
// Lookup fields always start with the numeric ID, then ;# and then the string representation.
// We are normally only interested in the name, so we strip the ID.
System.Text.RegularExpressions.Regex CheckLookup = new System.Text.RegularExpressions.Regex(“^\d ;#”);
foreach (XmlElement Item in ItemsNode.SelectNodes(“rs:data/z:row”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn col in result.Columns)
{
în cazul în care (Item.HasAttribute(“ows_” + (şir)DisplayNames[col.ColumnName]))
{
string val = Item.GetAttribute(“ows_” + (şir)DisplayNames[col.ColumnName]);
în cazul în care (CheckLookup.IsMatch((şir)val))
{
string valString = val as String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Assigning a string to a field that expects numbers or
// datetime values will implicitly convert them
newRow[col] = val;
}
}
result.Rows.Add(newRow);
}
Rezultatul retur;
}
// The following Function is used to Get Namespaces
private static XmlNamespaceManager _nsmgr;
private static XmlNamespaceManager NameSpaceMgr
{
get
{
în cazul în care (_nsmgr == null)
{
_nsmgr = new XmlNamespaceManager(new NameTable());
_nsmgr.AddNamespace(“AAC”, “HTTP://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“cu”, “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(“z”, “#RowsetSchema”);
}
return _nsmgr;
}
}
private Type TypeFromField(XmlElement field)
{
switch (field.GetAttribute(“Type”))
{
case “DateTime”:
return typeof(DateTime);
case “Integer”:
return typeof(int);
case “Number”:
return typeof(float);
default:
return typeof(şir);
}
}
WssSite object on this code, I am getting error on this, “you are missing a using directive or an assembly reference?” any idea
Hi Bala,
WssSite is an Webreference for the lists.asmx
Noroc,
Uday
Excellent. Thanks Uday. Your post saved me lot of time in my migration project 🙂
You are welcome Jaya