Bạn có thể sử dụng phương pháp GetListAndView của dịch vụ Danh sách web để có được các lược đồ để xem danh sách và một cái nhìn.
Từ tài liệu, nếu bạn để trống tham số viewName
, chế độ xem mặc định sẽ được trả lại. Sau đó, bạn có thể đọc nút <ViewFields></ViewFields>
cho danh sách các trường.
* Chỉnh sửa *
Hóa ra sử dụng XPath để truy vấn XML trở lại là khó khăn hơn tôi nghĩ ... đây là những gì tôi đã đưa ra:
XmlNode result = webService.GetListAndView("My Pictures", string.Empty);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(result.OwnerDocument.NameTable);
nsmgr.AddNamespace("sp", "http://schemas.microsoft.com/sharepoint/soap/");
string xpathQuery = "sp:View/sp:ViewFields/sp:FieldRef";
XmlNodeList nodes = result.SelectNodes(xpathQuery, nsmgr);
for (int i = 0; i < nodes.Count; i++)
{
Console.WriteLine(nodes[i].Attributes["Name"].Value);
}
Hình như bạn phải có một XmlNamespaceManager
nếu không truy vấn của bạn luôn trả về không có giá trị nào. Một cái gì đó về việc xác định không gian tên ... Đây là a good reference.
Nguồn
2010-11-22 19:06:14
có vẻ thú vị, tôi sẽ thử ASAP và đăng lên kết quả –
ViewFields Trả về tên của các trường, vì vậy tôi phải vẽ lại từng trường theo tên của nó để hiển thị tên là và vấn đề thứ hai là ViewFields không hiển thị tất cả các trường được hiển thị trong giao diện mặc định chia sẻ cho danh sách đó (Nếu danh sách là danh sách ảnh)! bất kỳ ý tưởng? –
Tôi đã thử điều này để lấy Fields, System.Xml.XmlNode list = SPListWebService.GetListAndView (xmlnode.Attributes ["Title"]. Value, string.Empty); System.Xml.XmlNodeList visibleColumns = list.SelectNodes ("View/ViewFields/FieldRef"); .... tôi đã sai ở đâu? –