public class SharePointManagement
{
ViewsService.Views objViewsService = new SPViewsService.ViewsService.Views();
ListsService.Lists objListsService = new SPViewsService.ListsService.Lists();
string strSiteURL = "http://mySharepointServer:1100";
string strUserName = "username";
string strDomain = "us";
string strPassword = "password";
string strListName = "Announcements";
string strQuery = "";
string strViewFields = "";
string strQueryOptions = "";
ArrayList lstViewID = new ArrayList();
public void GetViewQuery(string strListName)
{
try
{
#region Source URL
//get the lists for the Source URL
this.objViewsService.Url = this.strSiteURL.Trim('/') + "/_vti_bin/views.asmx";
//get the domain
if (this.strUserName.IndexOf("\\") > 0)
{
this.strDomain = this.strUserName.Split("\\".ToCharArray())[0];
this.strUserName = this.strUserName.Split("\\".ToCharArray())[1];
}
this.objViewsService.Credentials = new System.Net.NetworkCredential(this.strUserName, this.strPassword, this.strDomain);
#endregion
System.Xml.XmlNode xnAllView = this.objViewsService.GetViewCollection(strListName);
foreach (System.Xml.XmlNode node in xnAllView)
{
if (node.Name == "View")
{
this.lstViewID.Add(node.Attributes["Name"].Value);
}
}
//Get the First View
System.Xml.XmlNode xnViewData = this.objViewsService.GetView(this.strListName, lstViewID[0].ToString());
foreach (System.Xml.XmlNode node in xnViewData)
{
if (node.Name == "Query")
{
this.strQuery = node.InnerXml;
}
if (node.Name == "ViewFields")
{
this.strViewFields = node.InnerXml;
}
}
}
catch (System.Exception exp)
{
MessageBox.Show(exp.ToString());
}
}
public void GetViewData()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
try
{
#region Source URL
//get the lists for the Source URL
this.objListsService.Url = this.strSiteURL.Trim('/') + "/_vti_bin/lists.asmx";
//get the domain
if (this.strUserName.IndexOf("\\") > 0)
{
this.strDomain = this.strUserName.Split("\\".ToCharArray())[0];
this.strUserName = this.strUserName.Split("\\".ToCharArray())[1];
}
this.objListsService.Credentials = new System.Net.NetworkCredential(this.strUserName, this.strPassword, this.strDomain);
#endregion
//get the Data from the List
System.Xml.XmlDocument xdListData = new System.Xml.XmlDocument();
System.Xml.XmlNode xnQuery = xdListData.CreateElement("Query");
System.Xml.XmlNode xnViewFields = xdListData.CreateElement("ViewFields");
System.Xml.XmlNode xnQueryOptions = xdListData.CreateElement("QueryOptions");
//*Use CAML query*/
xnQuery.InnerXml = this.strQuery;
xnViewFields.InnerXml = this.strViewFields;
xnQueryOptions.InnerXml = this.strQueryOptions;
System.Xml.XmlNode xnListData = this.objListsService.GetListItems(this.strListName, null, xnQuery, xnViewFields, null, xnQueryOptions, null);
StringReader sr = new StringReader(xnListData.OuterXml.Replace("ows_", ""));
ds.ReadXml(sr);
return dt;
}
catch (System.Exception exp)
{
MessageBox.Show(exp.ToString());
return dt;
}
}
}
Thursday, March 1, 2012
Get SharePoint List Views using Web Services
Following is an example of displaying Views of a list in a DataGrid Control from SharePoint 2007 using Views.asmx and Lists.asmx Web Services.
Subscribe to:
Posts (Atom)