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);
}
}
WssSite đối tượng trên mã này, Tôi nhận được lỗi này, “bạn đang thiếu một chỉ thị bằng cách sử dụng hoặc tham khảo một hội?” bất kỳ ý tưởng
Hi Bala,
WssSite là một Webreference cho các lists.asmx
Chúc mừng,
Uday
Tuyệt vời. Thanks Uday. Bài đăng của bạn đã giúp tôi tiết kiệm rất nhiều thời gian trong dự án di chuyển của mình 🙂
Bạn được chào đón Jaya