In my environment, This is one of a Frequently asked question: How do I find who has created a List or Library? oops, I don't find any direct way from SharePoint interface to know who has created a List or Library.
Lets develop a Application page, host it under Layouts folder and let the users access that page to get the list owners information.
1. Create a Visual studio "Empty SharePoint Project", Give it a name, Lets say "ListOwner".
2. Add a New Item to the Project, choose "Application Page", Name it, Say "ListOwner.aspx"
3. This will create the project structure as in the below screen.
4. Now, Lets add a grid to the page, to display all the Lists and its owners from the current site.
Go to the ListOwner.aspx page, locate the code block:
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
</asp:Content>
and add the SPGrid in between above code. So it will be:
Lets develop a Application page, host it under Layouts folder and let the users access that page to get the list owners information.
How to get Who has Created a List/Library?
Here is how to Create a Custom Application Page for SharePoint 2010 using Visual Studio - Step by Step:1. Create a Visual studio "Empty SharePoint Project", Give it a name, Lets say "ListOwner".
2. Add a New Item to the Project, choose "Application Page", Name it, Say "ListOwner.aspx"
3. This will create the project structure as in the below screen.
4. Now, Lets add a grid to the page, to display all the Lists and its owners from the current site.
Go to the ListOwner.aspx page, locate the code block:
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
</asp:Content>
and add the SPGrid in between above code. So it will be:
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label"><h2>List owners Info:</h2></asp:Label>
<SharePoint:SPGridView runat="server" ID="GridView" AutoGenerateColumns="false"
GridLines=Horizontal HeaderStyle-BackColor="#18518E" RowStyle-BackColor="#D3E4E5"
RowStyle-ForeColor="Black" AlternatingRowStyle-BackColor="#fcfcfc" HeaderStyle-Font-Bold="true" />
</asp:Content>
As the next step, we've to write the code to fetch the lists & libraries to the Grid, by editing ListOwner.aspx.cs
using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Data;
using System.Web.UI.WebControls;
namespace ListOwner.Layouts.ListOwner
{
public partial class ListOwner : LayoutsPageBase
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
//Add columns to Data Table
dt.Columns.Add("List Name", typeof(string));
dt.Columns.Add("List URL", typeof(string));
dt.Columns.Add("Description", typeof(string));
dt.Columns.Add("Owner", typeof(string));
dt.Columns.Add("OwnerURL", typeof(string));
//Add List info as rows
foreach(SPList list in SPContext.Current.Web.Lists)
{
//can Filter the Lists by SPListTemplateType
//http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splisttemplatetype.aspx
DataRow row = dt.NewRow();
row["List Name"] = list.Title;
row["List URL"] = SPContext.Current.Web.Url + list.RootFolder.ServerRelativeUrl;
row["Description"] = list.Description;
row["Owner"] = list.Author.LoginName;
row["OwnerURL"] = SPContext.Current.Web.Url + "/_layouts/userdisp.aspx?ID="
+ list.Author.ID + "&Source=" + Page.Request.Url;
dt.Rows.Add(row);
}
//Add Columns to Grid
HyperLinkField col1 = new HyperLinkField();
col1.HeaderText = "List Name";
col1.DataTextField = "List Name";
col1.DataNavigateUrlFields = new string[] { dt.Columns["List URL"].ToString() };
GridView.Columns.Add(col1);
SPBoundField col2= new SPBoundField();
col2.HeaderText = "Description";
col2.DataField = "Description";
GridView.Columns.Add(col2);
HyperLinkField col3 = new HyperLinkField();
col3.HeaderText = "List Owner";
col3.DataTextField = "Owner";
col3.DataNavigateUrlFields = new String[] { dt.Columns["OwnerURL"].ToString() };
GridView.Columns.Add(col3);
//Set the Datasource and bind to Grid
GridView.DataSource = dt;
GridView.DataBind();
}
}
}
Build and deploy the project! That's all, we are done creating custom SharePoint 2010 application page using visual studio 2010.
Tail:
How to find Who has Created a Particular SharePoint Site collection or Sub-Site?
You can get the Site Creator, Created Time, etc by accessing the SPWeb.Author, SPWeb.Created properties.
Tail:
How to find Who has Created a Particular SharePoint Site collection or Sub-Site?
You can get the Site Creator, Created Time, etc by accessing the SPWeb.Author, SPWeb.Created properties.
No comments:
Post a Comment