In this article we will be seeing how to do custom validation for site column in SharePoint using power shell and SharePoint object model.I have created a list "Resume" where the users can upload the resume and will be filling some basic details. I have four columns:
Name
Email ID
Mobile No
Years of experience
I am going to do some custom validation for "Years of experience" column. Only users who have experience of 3-6 years can upload the resume.I have created a custom validation as shown in the following which has the Formula and User message (where you can display some custom error message).Go to SharePoint site -> List -> List Settings -> Columns -> click on the column to edit.
If Years of experience value is not between 3-6 years it will throw a custom error message as shown in the following.Using SharePoint object model you can achieve the same thing as shown in the following. using (SPSite site = new SPSite("http://serverName:1111/sites/SPSiteDataQuery/ ")){ using (SPWeb web = site.OpenWeb("Subsite1")) { SPList list = web.Lists.TryGetList("Resume"); if (list != null) { SPFieldNumber fieldNumber = list.Fields.GetField("Years of experience") as SPFieldNumber; fieldNumber.ValidationFormula = "=AND([Years of experience]>3,[Years of experience]<6)"; fieldNumber.ValidationMessage = "Years of experience must be 3-6 years"; fieldNumber.Update(); } else { Console.WriteLine("List does not exist in the site"); } Console.ReadLine(); }}
Using Power shell$siteURL="http://serverName:1111/sites/SPSiteDataQuery/"$listName="Resume"$fieldName="Years of experience"$validationFormula="=AND([Years of experience]>3,[Years of experience]<6)"$validationMessage="Years of experience must be 3-6 years"$site=Get-SPSite $siteURL$web=$site.OpenWeb("Subsite1")$list=$web.Lists.TryGetList($listName)if($list -ne $null){ $fieldNumber=$list.Fields.GetField($fieldName) $fieldNumber.ValidationFormula = $validationFormula $fieldNumber.ValidationMessage = $validationMessage $fieldNumber.Update() write-host -f green "Custom Validation added to the "$fieldName " successfully" }else{ write-host -f yellow $listName "does not exist in the site"}
You need to be a premium member to use this feature. To access it, you'll have to upgrade your membership.
Become a sharper developer and jumpstart your career.
$0
$
. 00
monthly
For Basic members:
$20
For Premium members:
$45
For Elite members: