Monday 29 December 2014

How to Create a List in Sharepoint Programmatically

Creating a List programmatically by using out of the box List Template Types

Dim site As SPSite = SPContext.Current.Site
Dim web As SPWeb = site.RootWeb
web.AllowUnsafeUpdates = True
Dim _listname As String = listname.Text
Dim listExist As Boolean = False
For Each list As SPList In web.Lists
If _listname.ToLower() = list.RootFolder.Name.ToLower() Then
listExist = True
Exit For
End If
Next
If listExist Then
Response.Write("List already Exist in site can not be created")
Else
web.Lists.Add(_listname, "listdescription", SPListTemplateType.Announcements)
Response.Write("List created")
End If
web.AllowUnsafeUpdates = False

Common  OOTB List Templates  For Reference

Events
Contacts 
Tasks
PictureLibrary
DiscussionBoard
Survey
DocumentLibrary
Links
Document Library
Announcements
GenericList

WorkflowHistory
DataConnectionLibrary
DataSources
GanttTasks
CustomGrid
NoCodeWorkflows
XMLForm
WebPageLibrary
WorkflowProcess
Form Library
wiki
Wiki Page Library
Picture Library
Picture
Contacts
Calendar
Discussion Board
Project Tasks
Issue Tracking
Custom List
Custom List in Datasheet View
Survey Survey
Custom Workflow Process
Languages and Translators
Translation Management Library
DataSources
Data Connection Library
Workflow History
No Code Workflows


Create Sharepoint List Programmatically using an existing custom List Template 

Dim site As SPSite = SPContext.Current.Site
Dim web As SPWeb = site.RootWeb
web.AllowUnsafeUpdates = True
Dim listTemplates As SPListTemplateCollection = site.GetCustomListTemplates(web)
Dim internalName As String = "email template.stp"
For Each _listtemp As SPListTemplate In listTemplates
If (_listtemp.InternalName.Equals(internalName)) Then
Dim template As SPListTemplate = listTemplates("email template")
Dim listId As Guid = web.Lists.Add("Asdf", "The new custom list", _listtemp)
Dim list As SPList = web.Lists(listId)
End If
Next
web.AllowUnsafeUpdates = False

Delete Sharepoint List Programmatically using Server object model

Dim site As SPSite = SPContext.Current.Site
Dim web As SPWeb = site.RootWeb
web.AllowUnsafeUpdates = True
Dim lists As SPListCollection = mySite.Lists
Dim list As SPList = lists(TextBox1.Text)
Dim listGuid As System.Guid = list.ID
lists.Delete(listGuid)

Pass the Existence List name Using text box

The below code delete particular list from multiple website

Dim _site As SPSite = SPContext.Current.Site
Dim _allWebs As SPWebCollection = _site.AllWebs
Dim web As SPWeb
For Each web In  _allWebs 
Dim allLists As SPListCollection = web.Lists    
Dim i As Integer    
For i = 0 To allLists.Count - 1        
Dim list As SPList = allLists(i)        
If list.Title = TextBox1.Text Then            
Dim listGuid As Guid = list.ID          
allLists.Delete(listGuid)        
End If    
Next i
Next web




Read More

Save & Delete List Templates programmatically in SharePoint

Save a List Template in Sharepoint

Dim site As SPSite = SPContext.Current.Site
Dim web As SPWeb = site.OpenWeb()
web.AllowUnsafeUpdates = True
SPList lstSource = oSPWeb.Lists["SourceList"];
lstSource.SaveAsTemplate("FileName.stp", "Name", "Description", false);
lstSource.Update();

Delete a List Template in Sharepoint

Dim oSPsite As SPSite = New SPSite("http://myserver/site"))
Using oSPWeb As SPWeb = oSPsite.OpenWeb()
Dim objLstTempGallery As SPList = oSPWeb.Lists("List Template Gallery")
For Each objLstItem As SPListItem In objLstTempGallery.Items
If objLstItem.Title = "DEL_LIST_TEMPLATE_NAME" Then
objLstItem.Delete()
objLstTempGallery.Update()
Exit For
End If
Next
End Using

Read More

How to Add or Delete List Items in Sharepoint (Inside Folder)

Creating List Item

Dim mySite As SPWeb = SPContext.Current.Web

Dim listItems As SPListItemCollection   = mySite.Lists(TextBox1.Text).Items
Dim item As SPListItem = listItems.Add()
item("Title") = TextBox2.Text
item("Stock") = Convert.ToInt32(TextBox3.Text)
item("Return Date") = Convert.ToDateTime(TextBox4.Text)
item("Employee") = TextBox5.Text
item.Update()

Deleting List Item

Dim mySite As SPWeb = SPContext.Current.Web

Dim listItems As SPListItemCollection = mySite.Lists(TextBox1.Text).Items
Dim itemCount As Integer = listItems.Count
Dim k As Integer
For k = 0 To itemCount - 1
    Dim item As SPListItem = listItems(k)
    If TextBox2.Text = item("Employee").ToString() Then
        listItems.Delete(k)
    End If
Next k

Deleting List Item By ID


Dim mySite As SPWeb = SPContext.Current.Web

Dim listItems As SPListItemCollection = mySite.Lists(TextBox1.Text).Items
listItems .Items.DeleteItemById(deleteItemId) ' pass id here

Updating List Item


Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"

Dim clientContext As New ClientContext(siteUrl)
Dim oList As List = clientContext.Web.Lists.GetByTitle("Announcements")
Dim oListItem As ListItem = oList.Items.GetById(3)
oListItem("Title") = "My Updated Title."
oListItem.Update()
clientContext.ExecuteQuery()


Creating List Item Inside Folder In a Sharepoint List


Dim a As SPSite = New SPSite(AppSettings("SPUrl"))

Dim websp As SPWeb = a.OpenWeb()   
Using Web As SPWeb = root_web
Dim list As SPList = Web.Lists("ListName")
Web.AllowUnsafeUpdates = True
If list IsNot Nothing Then
Dim _folderitem As SpFolder = List.RootFolder.SubFolder("FolderName")
Dim _item As SPListItem = list.Items.Add(_folderitem.Folder.ServerRelativeUrl, SPFileSystemObjectType.File)
_item("Booking_x0020_Number") = Me.lblBookingNo.Text
_item("Duration") = timeSlots
_item("Booking_x0020_Date") = Date.Now                           
_item.Update()                     
End If
End Using

Retrieving List Item From Folder In  a Sharepoint List


Dim a As SPSite = New SPSite(AppSettings("SPUrl"))

Dim websp As SPWeb = a.OpenWeb()
Using Web As SPWeb = root_web
Dim list As SPList = Web.Lists("ListName")
If list IsNot Nothing Then
Dim _folderitem As SpFolder = List.RootFolder.SubFolder("FolderName")
Dim Query As Spquery = New Spquery()
Query .Folder = _folderitem
Dim Items As SPListItemCollection = _list.GetItems(query)
For Each _ids As SPListItem In Items 
Me.lblBookingNo.Text    =  _item("Booking_x0020_Number") 
Next  
End If


End Using
Read More

Retrieving SharePoint List Data using CAML


Basic CAML query properties  used in sharepoint 

  • Group by        :-  used to group the data in list view 
  • Order by        :-   used  to sort the list either in ASCENDING or DECENDING
  • Row limit       :-  used to set the limit of item returned from qury 
  • View fields     :-  used to filter fields from the list 
  • View              :-  section which usally surrounds all of the section
  • Query             :-   used to pass the query inside view section
  • OR/AND         :-  Used within the ‘Where’ element to group filters in a query for a   view
Example: OrderBy

<OrderBy> 
     <FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
</OrderBy>

Example: GroupBy

<GroupBy> 
      <FieldRef Name="Modified"/> 
</GroupBy>

Example: AND

    Dim oSb As New System.Text.StringBuilder
    oSb.Append("  <Where>")
    oSb.Append("      <And> ")
    oSb.Append("                   <Eq>")
    oSb.Append("                        <FieldRef Name=""Displayed"" />")
    oSb.Append("                        <Value Type=""Boolean"">1</Value>")
    oSb.Append("                   </Eq>")
    oSb.Append("                   <Neq>")
    oSb.Append("                        <FieldRef Name=""Booking_x0020_Status"" />")
    oSb.Append("                        <Value Type=""Text"">Cancelled</Value>")
    oSb.Append("                   </Neq>")
 oSb.Append("      </And> ")
    oSb.Append("   </Where>")
    Dim sResult As String = oSb.ToString()
    Dim query As New SPQuery()
    query.Query = sResult
    Dim _waitingcoll As SPListItemCollection = _waitinglist.GetItems(query) 

Example: OR

  Dim oSb As New System.Text.StringBuilder
    oSb.Append("  <Where>")
    oSb.Append("      <Or> ")
    oSb.Append("                   <Eq>")
    oSb.Append("                        <FieldRef Name=""Displayed"" />")
    oSb.Append("                        <Value Type=""Boolean"">1</Value>")
    oSb.Append("                   </Eq>")
    oSb.Append("                   <Neq>")
    oSb.Append("                        <FieldRef Name=""Booking_x0020_Status"" />")
    oSb.Append("                        <Value Type=""Text"">Cancelled</Value>")
    oSb.Append("                   </Neq>")
    oSb.Append("      </Or> ")
    oSb.Append("   </Where>")
    Dim sResult As String = oSb.ToString()
    Dim query As New SPQuery()
    query.Query = sResult
    Dim _waitingcoll As SPListItemCollection = _waitinglist.GetItems(query) 

Example Begin'swith / Contains


<Where>
     <And>
       <BeginsWith>
              <FieldRef Name="Conference"/> 
              <Value Type="Note">Morning</Value>
       </BeginsWith>
       <Contains>
              <FieldRef Name="Conference" />
              <Value Type="Note">discussion session</Value>
       </Contains>
   </And>
</Where>

The full Code snippets will look like:

<View>
 <Query>
      <OrderBy>
          <FieldRef Name='ID'/>
      </OrderBy>
   <Where>
  <Or>
     <Geq>
         <FieldRef Name='Field1'/>
         <Value Type='Number'>1500</Value>
     </Geq>
     <Leq>
        <FieldRef Name='Field2'/><Value Type='Number'>500</Value>
     </Leq>
   </Or>
  </Where>
 </Query>
   <ViewFields>
        <FieldRef Name='Title'/>
        <FieldRef Name='Name'/>
   </ViewFields>
   <RowLimit>10</RowLimit>
</View>
Read More

HOW TO USE CAML QUERY IN SHAREPOINT TO FETCH LIST ITEMS




CAML represents Collaborative Markup Language which is an XML based language for querying and updating SharePoint objects.

CAML Query Comparison Operators:

Tag Name     Meaning
ContainsContains a given text value
EqEqual to
GeqGreater than or equal to
GtGreater than
LeqLess than or equal to
LtLess than
NeqNot equal to
DateRanges
Overlap
Compares dates in recurring events to determine if they overlap
IsNotNullIs not null
IsNullIs null

Examples:-

 FETCH CURRENT USER ITEMS FROM SHAREPOINT  LIST USING CAML QUERY

 Dim userName  As SPUser = SPContext.Current.Site.Web.Currentuser.name
  Using site As SPSite = SPContext.Current.Site
  Using _web As SPWeb = site.OpenWeb()
    Dim _waitinglist As SPList = _web.Lists("List Name")
    Dim oSb As New System.Text.StringBuilder
           oSb.Append("         <OrderBy>")
            oSb.Append("              <FieldRef Name=""Priority""  Ascending='FALSE'/>")
            oSb.Append("         </OrderBy>")
            oSb.Append("         <Where>")
            oSb.Append("                       <Eq>")
            oSb.Append("                             <FieldRef Name=""Booked_x0020_By"" />")
            oSb.Append("                             <Value Type=""User"">" & userName  & "</Value>")
            oSb.Append("                        </Eq>")
            oSb.Append("         </Where>")
    Dim sResult As String = oSb.ToString()
    Dim query As New SPQuery()
    query.Query = sResult
    Dim _waitingcoll As SPListItemCollection = _waitinglist.GetItems(query)           
 End Using
 End Using


In the above code Booked by is people picker column in sharepoint list

 FETCH  SHAREPOINT  LIST  ITEM'S BETWEEN TO TWO  DATES

  Using site As SPSite = SPContext.Current.Site
  Using _web As SPWeb = site.OpenWeb()
  Dim _waitinglist As SPList = _web.Lists("List Name")
    Dim oSb As New System.Text.StringBuilder
    oSb.Append("  <Where>")
    oSb.Append("     <And>")
    oSb.Append("       <Lt>")
    oSb.Append("          <FieldRef Name=""Start_x0020_Date_x0020_Time"" />")
    oSb.Append("           <Value Type=""DateTime"" IncludeTimeValue=""TRUE"">" & enddatetime & "</Value>")
    oSb.Append("       </Lt>")
    oSb.Append("        <Gt>")
    oSb.Append("            <FieldRef Name=""End_x0020_Date_x0020_Time"" />")
    oSb.Append("            <Value Type=""DateTime"" IncludeTimeValue=""TRUE"">" & startdatetime & "</Value>")
    oSb.Append("        </Gt>")
    oSb.Append("     </And>")
    oSb.Append("   </Where>")
    Dim sResult As String = oSb.ToString()
    Dim query As New SPQuery()
    query.Query = sResult
    Dim _waitingcoll As SPListItemCollection = _waitinglist.GetItems(query)           
 End Using
 End Using

 FETCH THE SHAREPOINT LIST ITEMS BY COMPARING BOOLEAN VALUE
      
        Dim web As SPWeb = Common.getWeb
        web.AllowUnsafeUpdates = True
        Dim _list As SPList = web.Lists("RESOURCE")
        Dim query As New SPQuery
        Dim oSb As New System.Text.StringBuilder
        oSb.Append("         <Where>")
        oSb.Append("                   <Eq>")
        oSb.Append("                        <FieldRef Name=""Displayed"" />")
        oSb.Append("                        <Value Type=""Boolean"">1</Value>")
        oSb.Append("                   </Eq>")
        oSb.Append("         </Where>")
        Dim sResult As String = oSb.ToString()
        query.Query = sResult
        Dim Items As SPListItemCollection = _list.GetItems(query)
        Return Items

USING CAML TO QUERY SHAREPOINT LISTS OVER LOOKUP FIELDS

Using site As SPSite = SPContext.Current.Site
  Using _web As SPWeb = site.OpenWeb()

    Dim _waitinglist As SPList = _web.Lists("List Name")

    Dim oSb As New System.Text.StringBuilder
    oSb.Append("  <Where>")

    oSb.Append("      <Eq> ")

    oSb.Append("          <FieldRef Name=""ProjectID"" />")

    oSb.Append("           <Value Type="Lookup">My Test Project 1</Value> 

    oSb.Append("       </Eq> ")

    oSb.Append("   </Where>")

    Dim sResult As String = oSb.ToString()

    Dim query As New SPQuery()
    query.Query = sResult
    Dim _waitingcoll As SPListItemCollection = _waitinglist.GetItems(query)           
 End Using
 End Using

CAML QUERY TO MATCH TEXT FIELD IN SHAREPOINT LSIT

 Using site As SPSite = SPContext.Current.Site

  Using _web As SPWeb = site.OpenWeb()

    Dim _waitinglist As SPList = _web.Lists("List Name")

    Dim oSb As New System.Text.StringBuilder

    oSb.Append("  <Where>")

    oSb.Append("      <Eq> ")

    oSb.Append("          <FieldRef Name=""Designation"" />")
    oSb.Append("           <Value Type="Text">Enginee</Value> 
    oSb.Append("       </Eq> ")
    oSb.Append("   </Where>")
    Dim sResult As String = oSb.ToString()
    Dim query As New SPQuery()
    query.Query = sResult
    Dim _waitingcoll As SPListItemCollection = _waitinglist.GetItems(query)           
 End Using
 End Using

HOW TO USE INCLUDE OPERATOR IN CAML QUERY


INCLUDES:

MSDN Def: If the specified field is a Lookup field that allows multiple values,

specifies that the Value element is included in the list item for the field that is specified by the FieldRef element.



  Using site As SPSite = SPContext.Current.Site
  Using _web As SPWeb = site.OpenWeb()
    Dim _waitinglist As SPList = _web.Lists("List Name")
    Dim oSb As New System.Text.StringBuilder
    oSb.Append("  <Where>")
    oSb.Append("      <Includes> ")
    oSb.Append("          <FieldRef Name=""Organization"" />")
    oSb.Append("           <Value Type="Lookup">microsoft</Value> 
    oSb.Append("       </Includes> ")
    oSb.Append("      <Includes> ")
    oSb.Append("          <FieldRef Name=""Designation"" />")
    oSb.Append("           <Value Type="Lookup">.NetDeveloper</Value> 
    oSb.Append("       </Includes> ")
    oSb.Append("   </Where>")
    Dim sResult As String = oSb.ToString()
    Dim query As New SPQuery()
    query.Query = sResult
    Dim _waitingcoll As SPListItemCollection = _waitinglist.GetItems(query)           
 End Using
 End Using


HOW TO USE NOT-INCLUDE OPERATOR IN CAML QUERY

Not-Include quite oppsite to Include operator

 Using site As SPSite = SPContext.Current.Site
  Using _web As SPWeb = site.OpenWeb()
    Dim _waitinglist As SPList = _web.Lists("List Name")
    Dim oSb As New System.Text.StringBuilder
    oSb.Append("  <Where>")
    oSb.Append("      <Includes> ")
    oSb.Append("          <FieldRef Name=""Organization"" />")
    oSb.Append("           <Value Type="Lookup">microsoft</Value> 
    oSb.Append("       </Includes> ")
    oSb.Append("      <NotIncludes> ")
    oSb.Append("          <FieldRef Name=""Designation"" />")
    oSb.Append("           <Value Type="Lookup">.NetDeveloper</Value> 
    oSb.Append("       </NotIncludes> ")
    oSb.Append("   </Where>")
    Dim sResult As String = oSb.ToString()
    Dim query As New SPQuery()
    query.Query = sResult
    Dim _waitingcoll As SPListItemCollection = _waitinglist.GetItems(query)           
 End Using
 End Using

Read More

InputFormTextBox Validation(Rich TextBox in Sharepoint)


InputFormTextBox Validation(Rich TextBox in Sharepoint)

In this post I will tell how to validate the InputFormTextBox contol using custom JavaScript function…if u Use  RequiredFieldValdator or InputFormRequiredFieldValidator with InputFormTextbox  U ll get some validation Issues Onclick Validation Button…Instead of RequiredFieldValidation  Just do with CustomValidator .

This is an example of Client-side validation Using Cutomvalidator…



<sharepoint:InputFormTextBox ID=”txtDetailInfoRequired” CausesValidation=”true”
AllowHyperlink=”true” RichText=”true” RichTextMode=”FullHtml” runat=”server” TextMode=”MultiLine” Rows=”6″ Columns=”10″ />

<asp:CustomValidator ID=”CustomeDetails” runat=”server” ValidationGroup=”validate”  ClientValidationFunction=”ValidationForRichDetails” ControlToValidate=”txtDetailInfoRequired” SetFocusOnError=”true” ValidateEmptyText=”true” Display=”Dynamic” ErrorMessage=”*”>

Inside  Javascript tag Define this function...

<script language=”javascript” type=”text/javascript”>
function ValidationForRichReason(source, arguments) {
var text = RTE_GetRichEditTextOnly(“<%= txtReasonofrequest.ClientID %>”);
if (text != “”) {
arguments.IsValid = true;
}
else {
//set focus back to the rich text editor.
RTE_GiveEditorFocus(“<%= txtReasonofrequest.ClientID %>”);
arguments.IsValid = false;
}
}
</script>


Onclick…Button…

<asp:Button ID=”btnSubmit” runat=”server” Text=”Submit”  CssClass=”nav_new” ValidationGroup=”validate” />

if any doubts please comments here...good luck
Read More

Diifrent ways to get logged in User Name & Handling Changes in Form Based Authentication User's


  • To get the logged in user name you have the following methods available in SharePoint 2010 Web Part User Control:

  

  • this.Page.User.Identity.Name
  • HttpContext.Current.User.Identity.Name
  • SPContext.Current.Web.CurrentUser.LoginName
  • SPContext.Current.Web.CurrentUser.Name



   Programmatically converting login name to claim and vice versa




string userName = null;
SPClaimProviderManager mgr = SPClaimProviderManager.Local;
if (mgr != null)
{
    userName = mgr.DecodeClaim(SPContext.Current.Web.CurrentUser.LoginName).Value;
}


Claims back and forth


string userName = null;
SPClaimProviderManager mgr = SPClaimProviderManager.Local;
if (mgr != null)
{
    SPClaim claim = new SPClaim(SPClaimTypes.UserLogonName, "myuser""http://www.w3.org/2001/XMLSchema#string"SPOriginalIssuers.Format(SPOriginalIssuerType.Forms, "myprovider"));
    userName = mgr.EncodeClaim(claim);
}
Read More
© TBGsharepointforum All rights reserved | Designed by Blogger Templates