หอจดหมายเหตุ

Retreiving เนื้อหารายการผ่านเว็บเซอร์ใน SharePoint 2003

เพิ่ม webreference เพื่อ Lists.asmx ในไซต์ SharePoint.

http://localhost / _vti_bin / Lists.asmx
(SharePoint URL ของไดเรกทอรีเสมือน / _vti_bin / Lists.asmx

เขียนวิธีการดังต่อไปนี้ในเว็บเซอร์ของคุณ.

ส่วนตัว GetDataTableFromWSS data.DataTable(bool onlySchema)
{
สตริง = HTTP WssSiteUrl://192.168.111.21;
สตริง WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists = WssSite.Lists รายการใหม่();
WssSiteUrl lists.Url = + “_vti_bin / Lists.asmx”;
lists.Credentials System.Net.CredentialCache.DefaultCredentials =;

lists.PreAuthenticate = จริง;
//คุณต้องผ่านชื่อรายการที่นี่
CommandText = สตริง “ข้อมูลพนักงาน”;
XmlNode = lists.GetListCollection ListCollectionNode();
รายชื่อ XmlElement = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:รายการ[หัวข้อ @ ='{0}']”, CommandText), NameSpaceMgr);
ถ้า (รายชื่อ == null)
{
โยน ArgumentException ใหม่(String.Format(“รายการที่ {0} ไม่พบในเว็บไซต์ {1}”, CommandText, WssSiteUrl));
}
TechListName สตริง List.GetAttribute =(“ชื่อ”);
ผล data.DataTable = data.DataTable ใหม่(“รายการ”);
โหนด XmlNode lists.GetList listinfo =(TechListName);
System.Text.StringBuilder fieldRefs = System.Text.StringBuilder ใหม่();
DisplayNames System.Collections.Hashtable = System.Collections.Hashtable ใหม่();
foreach (เขต XmlElement ใน ListInfoNode.SelectNodes(“WSS:เขต / WSS:เขตข้อมูล”, NameSpaceMgr))
{
ถ้า (Field.HasChildNodes)
{
foreach (fld XmlElement ใน Field.SelectNodes(“WSS:เขต / WSS:เขตข้อมูล”, NameSpaceMgr))
{
FieldName สตริง Fld.GetAttribute =(“ชื่อ”);
FieldDisplayName สตริง Fld.GetAttribute =(“DisplayName”);
ถ้า (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(เขตข้อมูล));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
อื่น
{
FieldName สตริง Field.GetAttribute =(“ชื่อ”);
string FieldDisplayName = Field.GetAttribute(“DisplayName”);
ถ้า (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(เขตข้อมูล));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
ถ้า (onlySchema) return result;
XmlElement fields = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode = lists.GetListItems ItemsNode(TechListName, “”, โมฆะ, เขตข้อมูล, “1000000”, โมฆะ);
// 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)
{
ถ้า (Item.HasAttribute(“ows_” + (เชือก)DisplayNames[col.ColumnName]))
{
string val = Item.GetAttribute(“ows_” + (เชือก)DisplayNames[col.ColumnName]);
ถ้า (CheckLookup.IsMatch((เชือก)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);
}
return result;
}

// The following Function is used to Get Namespaces

private static XmlNamespaceManager _nsmgr;
private static XmlNamespaceManager NameSpaceMgr
{
get
{
ถ้า (_nsmgr == null)
{
_nsmgr = new XmlNamespaceManager(new NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“ด้วย”, “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(เชือก);
}
}

4 comments to Retreiving List Content through WebService in SharePoint 2003

ปล่อยให้ตอบกลับ

คุณสามารถใช้ เหล่านี้แท็ก

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