In this article you will see how to get all the lists using a Web Service (_vti_bin/lists.asmx) and display the list title and description in a SharePoint 2010 Visual Web Part.
Create an Empty SharePoint Project using Visual Studio 2010:
1. Open Visual Studio 2010.
2. Go to File => New => Project.
![WebSrvcShr1.gif]()
3. Select Empty SharePoint Project template from the installed templates.
![WebSrvcShr2.gif]()
4. Enter the Name for the project as GetList and then click on Ok.
5. Select the local site that will be used for debugging and select "Deploy as a
Farm Solution".
![WebSrvcShr3.gif]()
6. Click on Finish.
Add Visual Web Part to the Empty SharePoint Project:
1. In the solution explorer, right click on Solution and click on Add.
2. Click on "New Item".
![WebSrvcShr4.gif]()
3. Select Visual Web Part template from the installed templates.
![WebSrvcShr5.gif]()
4. Enter the Name for the Visual Web Part as GetList and then click on Add.
Add Web Reference to the solution:
1. Right click on References folder and then click on "Add Service Reference".
![WebSrvcShr6.gif]()
2. In the "Add Service Reference" wizard click on "Advanced..." button.
![WebSrvcShr7.gif]()
3. In the "Service Reference Settings" wizard click on "Add Web Reference...".
![WebSrvcShr8.gif]()
4. In the URL section, enter the lists web service URL and then click on enter.
![WebSrvcShr9.gif]()
5. Enter the Web Reference Name and then click on "Add Reference" button.
6. Click on Ok.
7. Web Reference will be added successfully.
GetListUserControl.ascx:
1. Replace GetListUserControl.aspx with the following
<%@
Assembly Name="$SharePoint.Project.AssemblyFullName$"
%>
<%@
Assembly Name="Microsoft.Web.CommandUI,
Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
%>
<%@
Register Tagprefix="SharePoint"
Namespace="Microsoft.SharePoint.WebControls"
Assembly="Microsoft.SharePoint,
Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
%>
<%@
Register Tagprefix="Utilities"
Namespace="Microsoft.SharePoint.Utilities"
Assembly="Microsoft.SharePoint,
Version=14.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c"
%>
<%@
Register Tagprefix="asp"
Namespace="System.Web.UI"
Assembly="System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
%>
<%@
Import Namespace="Microsoft.SharePoint"
%>
<%@
Register Tagprefix="WebPartPages"
Namespace="Microsoft.SharePoint.WebPartPages"
Assembly="Microsoft.SharePoint,
Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
%>
<%@
Control Language="C#"
AutoEventWireup="true"
CodeBehind="GetListUserControl.ascx.cs"
Inherits="GetList.GetList.GetListUserControl"
%>
<asp:GridView
ID="gvGetList"
runat="server"
CellPadding="4"
EnableModelValidation="True"
ForeColor="#333333"
GridLines="None">
<AlternatingRowStyle
BackColor="White"
/>
<EditRowStyle
BackColor="#2461BF"
/>
<FooterStyle
BackColor="#507CD1"
Font-Bold="True"
ForeColor="White"
/>
<HeaderStyle
BackColor="#507CD1"
Font-Bold="True"
ForeColor="White"
/>
<PagerStyle
BackColor="#2461BF"
ForeColor="White"
HorizontalAlign="Center"
/>
<RowStyle
BackColor="#EFF3FB"
/>
<SelectedRowStyle
BackColor="#D1DDF1"
Font-Bold="True"
ForeColor="#333333"
/>
</asp:GridView>
GetListUserControl.ascx.cs:
1. Add the following Namespaces
- using GetList.ListsWebReference;
- using System.Net;
- using System.Data;
2. Replace GetListUserControl.aspx.cs with the
following code
using
System;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
GetList.ListsWebReference;
using
System.Net;
using
System.Data;
namespace
GetList.GetList
{
public partial
class
GetListUserControl : UserControl
{
protected void
Page_Load(object sender,
EventArgs e)
{
DataSet dataSet;
DataTable dataTable;
DataColumn dataColumn;
DataRow dataRow;
Lists listReference =
new Lists();
listReference.Url = "http://serverName:10736/sites/ECT/_vti_bin/lists.asmx";
listReference.Credentials =
CredentialCache.DefaultCredentials;
System.Xml.XmlNode node =
listReference.GetListCollection();
dataTable = new DataTable();
dataColumn = new
DataColumn("Title");
dataTable.Columns.Add(dataColumn);
dataColumn = new
DataColumn("Description");
dataTable.Columns.Add(dataColumn);
dataSet = new
DataSet();
dataSet.Tables.Add(dataTable);
foreach (System.Xml.XmlNode
xmlnode in node)
{
dataRow = dataTable.NewRow();
dataRow["Title"] = xmlnode.Attributes["Title"].Value;
dataRow["Description"] = xmlnode.Attributes["Description"].Value;
dataTable.Rows.Add(dataRow);
}
gvGetList.DataSource = dataSet;
gvGetList.DataBind();
}
}
}
Deploy the solution:
- Build the solution
- Hit F5.
Create SharePoint 2010 Visual Web Part in
the SharePoint site:
1. Open the SharePoint Site.
2. Go to Site Actions => Edit the page.
3. Go to Editing Tools in the ribbon interface => Insert => Web Part.
4. In the Categories section, Select Custom and then select GetList.
![WebSrvcShr10.gif]()
5. Click on Add.
6. Visual Web Part displays all the list title and description as shown in the
following
![WebSrvcShr11.gif]()
Summary:
Thus in this article you have seen how to get all the lists using Web Service (_vti_bin/lists.asmx)
and display the list title and description in SharePoint 2010 Visual Web Part.