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.

SharePoint.png

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

SharePointCustamization.png

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:

ValidationInSharepoint.png

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

ImplementValidationInSharePoint.png