Introduction
Today, in this article let's play around with one of the interesting and most useful concepts in SharePoint 2010.
Question: What is Custom Field Validation?
In simple terms "It enables to specify validation levels where the user is restricted to enter accurate information with context to a specific requirement".
Step 1: Open SharePoint 2010 Central Administration and navigate to a specific site.
Step 2: Open up Visual Studio 2012 and try to select a SharePoint visualwebpart project.

Step 3: Select "Deploy as a farm solution" as in the following and click on the "Finish" button.

Step 4: The complete code of visualwebpart1usercontrol.ascx looks like this:
|
<%@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="VisualWebPart1.ascx.cs" Inherits="FieldValidApp.VisualWebPart1.VisualWebPart1"%> <center> <div> <tablestyle="text-align: center"> <tr> <tdcolspan="2"> <asp:labelid="Label1"runat="server"text="Custom Field Validation - SharePoint 2010 Programatically" font-bold="true"font-size="Large"font-names="Verdana"forecolor="Maroon"></asp:label> </td> </tr> <tr> <tdcolspan="2"> <br/> <asp:buttonid="Button1"runat="server"text="Custom Field Validation" font-names="Verdana" width="282px"backcolor="Orange"font-bold="True"onclick="Button1_Click"/> </td> </tr> <tr> <tdcolspan="2"> <br/> <asp:labelid="Label5"runat="server"font-bold="true"font-names="Verdana"></asp:label> </td> </tr> </table> </div> </center> |
Step 5: The complete code of visualwebpart1usercontrol.ascx.cs looks like this:
|
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Microsoft.SharePoint; using System; using System.ComponentModel; using System.Web.UI.WebControls.WebParts;namespace FieldValidApp.VisualWebPart1
{ [ ToolboxItemAttribute(false)]publicpartial classVisualWebPart1 : WebPart { // Uncomment the following SecurityPermission attribute only when doing Performance Profiling using // the Instrumentation method, and then remove the SecurityPermission attribute when the code is ready // for production. Because the SecurityPermission attribute bypasses the security check for callers of // your constructor, it's not recommended for production purposes. // [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Assert, UnmanagedCode = true) ]
public VisualWebPart1() {
} protected override void OnInit(EventArgs e) { base.OnInit(e);InitializeControl(); protected void Page_Load(object sender,EventArgs e) { } protected void Button1_Click(object sender,EventArgs e) { try{SPWeb web = SPContext.Current.Web; SPList list = web.Lists["Student"]; var field = list.Fields.GetField("Age"); field.ValidationFormula = "[Age]>= 18"; field.ValidationMessage = "Age Must Be Greater or Equal to 18 To Work Here"; Label5.Text = "Custom Field Validation Enabled"; Label5.ForeColor = System.Drawing.Color.Green;field.Update(); } catch (SPFieldValidationException ex) { Label5.Text = ex.Message;
} } } |
Step 6: Deploy the solution file and add the created webpart to the SharePoint site.
Step 7: The output of the application looks like this:

Step 8: Data entering validation output of the application looks like this:


Join the conversation! Your thoughts help the community grow.