Retreiving Nội dung Danh sách thông qua WebService trong SharePoint 2003

Thêm webreference Lists.asmx trong SharePoint trang web.

http://localhost / _vti_bin / Lists.asmx
(SharePoint ảo Directory URL / _vti_bin / Lists.asmx

viết các phương pháp sau đây trong WebService của bạn.

Private data.DataTable GetDataTableFromWSS(bool onlySchema)
{
string WssSiteUrl = http://192.168.111.21;
string WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists danh sách = mới WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;

lists.PreAuthenticate = true;
//bạn phải vượt qua Ký danh ở đây
string CommandText = “Nhân viên Thông tin”;
XmlNode = ListCollectionNode lists.GetListCollection();
Danh sách XmlElement = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Danh sách[@ Tiêu đề = '{0}']”, CommandText), NameSpaceMgr);
nếu (Danh sách == null)
{
ném ArgumentException mới(String.Format(“Danh sách {0} không thể được tìm thấy trong trang web {1}”, CommandText, WssSiteUrl));
}
Trong chuỗi TechListName = List.GetAttribute(“Tên”);
data.DataTable kết quả = mới data.DataTable(“danh sách”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = new System.Text.StringBuilder();
Displaynames System.Collections.Hashtable = System.Collections.Hashtable mới();
foreach (XmlElement trường trong ListInfoNode.SelectNodes(“WSS:Các trường / WSS:Lĩnh vực”, NameSpaceMgr))
{
nếu (Field.HasChildNodes)
{
foreach (XmlElement FLD trong Field.SelectNodes(“WSS:Các trường / WSS:Lĩnh vực”, NameSpaceMgr))
{
string fieldname = Fld.GetAttribute(“Tên”);
string FieldDisplayName = Fld.GetAttribute(“DisplayName”);
nếu (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Fieldname + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Lĩnh vực));
fieldRefs.AppendFormat(“”, Fieldname);
DisplayNames.Add(FieldDisplayName, Fieldname);
}
}
khác
{
string fieldname = Field.GetAttribute(“Tên”);
string FieldDisplayName = Field.GetAttribute(“DisplayName”);
nếu (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Fieldname + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Lĩnh vực));
fieldRefs.AppendFormat(“”, Fieldname);
DisplayNames.Add(FieldDisplayName, Fieldname);
}
}
nếu (onlySchema) Kết quả trả lại;
Các lĩnh vực XmlElement = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, không, các lĩnh vực, “1000000”, không);
// Tra cứu các lĩnh vực luôn luôn bắt đầu với các ID số, sau đó ;# và sau đó là chuỗi đại diện.
// Chúng tôi là bình thường chỉ quan tâm đến tên, vì vậy chúng tôi dải ID.
System.Text.RegularExpressions.Regex CheckLookup = mới System.Text.RegularExpressions.Regex(“^ D ;#”);

foreach (XmlElement khoản trong ItemsNode.SelectNodes(“rs:Ngày / z:hàng”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn góc trong result.Columns)
{
nếu (Item.HasAttribute(“ows_” + (chuỗi)Displaynames[col.ColumnName]))
{
chuỗi val = Item.GetAttribute(“ows_” + (chuỗi)Displaynames[col.ColumnName]);
nếu (CheckLookup.IsMatch((chuỗi)val))
{
string = valString sự lựa chọn như String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Phân công một chuỗi đến một lĩnh vực mà hy vọng con số hoặc
// giá trị datetime ngầm sẽ chuyển đổi chúng
newRow[với] = Val;
}
}
result.Rows.Add(newRow);
}
Kết quả trả lại;
}

// Chức năng sau đây được sử dụng để có được Không gian tên

tư nhân tĩnh XmlNamespaceManager _nsmgr;
tư nhân tĩnh XmlNamespaceManager NameSpaceMgr
{
nhận được
{
nếu (_nsmgr == null)
{
_nsmgr = mới XmlNamespaceManager(mới NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com / sharepoint / xà phòng /”);
_nsmgr.AddNamespace(“với”, “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(“của”, “#RowsetSchema”);

}
trở lại _nsmgr;
}
}
Private Loại TypeFromField(XmlElement lĩnh vực)
{
chuyển đổi (field.GetAttribute(“Loại”))
{
trường hợp “DateTime”:
trở lại typeof(DateTime);
trường hợp “Số nguyên”:
trở lại typeof(int);
trường hợp “Số”:
trở lại typeof(phao);
mặc định:
trở lại typeof(chuỗi);
}
}

4 ý kiến ​​để Retreiving Nội dung Danh sách thông qua WebService trong SharePoint 2003

Để lại một trả lời

Bạn có thể sử dụng các thẻ HTML

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