The following code shows two event handlers: - The first one (FieldAdded) updates existing list items when a field is added to a list. - The second handler (ListDeleting) prevents the deletion of a list.
namespace ProductMarketing.ProductTaskEvents{ public class ProductTaskEvents : SPListEventReceiver { public override void FieldAdded(SPListEventProperties properties) { SPField newField = properties.Field; Guid fieldID = newField.Id; if (newField.Type == SPFieldType.Text) { SPList thisList = properties.List; foreach (SPListItem item in thisList.Items) { item[fieldID] = "Please update this existing item..."; item.Update(); } } base.FieldAdded(properties); } public override void ListDeleting(SPListEventProperties properties) { properties.ErrorMessage = "This list is critical to the marketing campaign and cannot be deleted."; properties.Cancel = true; } }}
The following event handler shows how to update properties of a SharePoint Web site when a new Web is created
namespace ProductMarketing.ProductMarketingWebEvents{ public class ProductMarketingWebEvents : SPWebEventReceiver { public override void WebProvisioned(SPWebEventProperties properties) { SPWeb thisNewWeb = properties.Web; thisNewWeb.AllowUnsafeUpdates = true; thisNewWeb.Title = "Updated in Code"; thisNewWeb.Update(); thisNewWeb.AllowUnsafeUpdates = false; base.WebProvisioned(properties); } }}
The following code shows how to enumerate the alerts in a SharePoint site, and also how to enable or disable alerts.Note: This code is designed to run on an application page that includes: - An ASP.NET Label control called alertCount - An ASP.NET button that includes a Click event handler set to the EnableAll funtion - An ASP.NET button that includes a Click event handler set to the DisableAll funtion
namespace Alerter.Layouts.Alerter{ public partial class Alerts : LayoutsPageBase { protected void Page_Load(object sender, EventArgs e) { int enabled = 0; int disabled = 0; SPWeb thisWeb = SPContext.Current.Web; foreach (SPAlert alrt in thisWeb.Alerts) { if (alrt.Status == SPAlertStatus.On) { enabled++; } if (alrt.Status == SPAlertStatus.Off) { disabled++; } } alertCount.Text = "Enabled Alerts: " + enabled.ToString() + "\nDisabled Alerts" + disabled.ToString(); } protected void EnableAll(object sender, EventArgs e) { SPWeb thisWeb = SPContext.Current.Web; foreach (SPAlert alrt in thisWeb.Alerts) { alrt.Status = SPAlertStatus.On; alrt.Update(); } } protected void DisableAll(object sender, EventArgs e) { SPWeb thisWeb = SPContext.Current.Web; foreach (SPAlert alrt in thisWeb.Alerts) { alrt.Status = SPAlertStatus.Off; alrt.Update(); } } }}
The following code creates a new SharePoint site (SPWeb object):
SPSite thisSite = SPContext.Current.Site;thisSite.RootWeb.AllowUnsafeUpdates = true;SPWeb hrWeb = thisSite.RootWeb.Webs.Add("HRWeb", "Human Resources Web", "For use by HR Employees", 1033, "STS#0", false, false);hrWeb.Dispose();thisSite.RootWeb.AllowUnsafeUpdates = false;
The following code enumerates all of the services provided by the current farm's SPFarm object and displays them in a treeview control in an application page.Note: The code relies on there being a tree-view named farmContents in the application page.
namespace Hierarchy.Layouts.Hierarchy{ public partial class HierarchyViewer : LayoutsPageBase { protected void Page_Load(object sender, EventArgs e) { SPFarm thisFarm = SPFarm.Local; TreeNode node; farmContent s.Nodes.Clear(); foreach(SPService svc in thisFarm.Services) { node = new TreeNode(); node.Text = "(Type=" + svc.TypeName + ") " + svc.DisplayName; farmContents.Nodes.Add(node); } farmContents.CollapeAll(); }}
The following code enumerates all of the services, web applications, site collections, sites, and lists in a SharePoint farm, and displays them in a treeview control in an application page.Note: The code relies on there being a tree-view named farmContents in the application page. Also note how the addWebs() function is called recursively to ensure sites and subsites are enumerated and displyed in the treeview.
using System;using Microsoft.SharePoint;using Microsoft.SharePoint.WebControls;using System.Web.UI.WebControls;using Microsoft.SharePoint.Administration;namespace Hierarchy.Layouts.Hierarchy{ public partial class HierarchyViewer : LayoutsPageBase { protected void Page_Load(object sender, EventArgs e) { SPFarm thisFarm = SPFarm.Local; TreeNode node; farmContents .Nodes.Clear(); foreach(SPService svc in thisFarm.Services) { node = new TreeNode(); node.Text = "(Type=" + svc.TypeName + ") " + svc.DisplayName; farmContents.Nodes.Add(node); TreeNode svcNode = node; if (svc is SPWebService) { SPWebService webSvc = (SPWebService)svc; foreach (SPWebApplication webApp in webSvc.WebApplications) { node = new TreeNode(); node.Text = webApp.DisplayName; svcNode.ChildNodes.Add(node); TreeNode webAppNode = node; foreach (SPSite site in webApp.Sites) {
try { node = new TreeNode(); node.Text = site.Url; webAppNode.ChildNodes.Add(node); TreeNode siteNode = node; site.CatchAccessDeniedException = false; try { node = new TreeNode(site.RootWeb.Title, null, null, site.RootWeb.Url, "_self"); siteNode.ChildNodes.Add(node); TreeNode parentNode = node; foreach (SPList list in site.RootWeb.Lists) { node = new TreeNode(list.Title, null, null, list.DefaultViewUrl, "_self"); parentNode.ChildNodes.Add(node); } foreach (SPWeb childWeb in site.RootWeb.Webs) {
try { addWebs(childWeb, parentNode);
} finally
{
childWeb.Dispose();
} } } catch { }
}
finally
site.Dispose();
} } } } } farmContents.CollapseAll(); } void addWebs(SPWeb web, TreeNode parentNode) { TreeNode node; node = new TreeNode(web.Title, null, null, web.Url, "_self"); parentNode.ChildNodes.Add(node); parentNode = node; foreach (SPList list in web.Lists) { node = new TreeNode(list.Title, null, null, list.DefaultViewUrl, "_self"); parentNode.ChildNodes.Add(node); } foreach (SPWeb childWeb in web.Webs) {
} finally {
} } } }}