sharepoint
Arbeta med Managed Server Side Object Model (full trust)
Sök…
Anmärkningar
Konceptuell hierarki
I Sharepoint konceptuella hierarkin, webbplatssamlingar innehåller ställen, som i sin tur innehåller listor. En webbplatssamling ( SPSite
) har inget uttryckligt användargränssnitt men innehåller alltid en webbplats för RootWeb
(tillgänglig via egenskapen RootWeb
) och eventuellt ytterligare underlag under den rotplatsen. En webbplats eller webb ( SPWeb
) har ett användargränssnitt och innehåller listor / dokumentbibliotek ( SPList
), sidor med webparts och objekt / dokument ( SPListItem
).
Varningar på serversidan
- För att skapa ett program som använder SharePoint-serverns objektobjektmodell måste du i ditt Visual Studio-projekt lägga till en referens till Microsoft.SharePoint-enheten som är listad under Framework Assemblies.
- Program som använder Server Side Object Model (full-trust) kan bara köras på en Windows Server som är värd för SharePoint.
- Du kan inte ansluta till en annan SharePoint-server än den som programmet körs på.
Hej värld (får webbplatsens titel)
SharePoint 2013 och nyare versioner är endast 64-bitars och därför måste monteringen / programmet också byggas för 64-bitars processor.
Strax efter att ditt projekt har skapats är det nödvändigt att byta plattformmålet från vilken CPU som helst till x64 annars kommer fel uppstå.
using System;
using Microsoft.SharePoint;
namespace StackOverflow
{
class Samples
{
static void Main()
{
using (SPSite site = new SPSite("http://server/sites/siteCollection"))
using (SPWeb web = site.OpenWeb())
{
Console.WriteLine("Title: {0} Description: {1}", web.Title, web.Description);
}
}
}
}
Looping genom hela SharePoint-gården
Använda PowerShell kört från en SharePoint-webbserver:
$wacoll = get-spwebapplication
foreach($wa in $wacoll){
if($wa.IsAdministrationWebApplication -eq $false){
foreach($site in $wa.Sites){
foreach($web in $site.AllWebs){
# your code here
$web.Dispose()
}
$site.Dispose()
}
}
}
Hämta listobjekt
using (SPSite site = new SPSite("http://server/sites/siteCollection"))
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists["Some list"];
// It is always better and faster to query list items with GetItems method with
// empty SPQuery object than to use Items property
SPListItemCollection items = list.GetItems(new SPQuery());
foreach (SPListItem item in items)
{
// Do some operation with item
}
}
Hämta objekt med sökning
using (SPSite site = new SPSite("http://server/sites/siteCollection"))
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists["Some list"];
SPQuery query = new SPQuery()
{
RowLimit = 100
};
do
{
SPListItemCollection items = list.GetItems(query);
foreach (SPListItem item in items)
{
// Do some operation with item
}
// Assign current position to SPQuery object
query.ListItemCollectionPosition = items.ListItemCollectionPosition;
} while (query.ListItemCollectionPosition != null);
}
Hämta lista via url
using (SPSite site = new SPSite("http://server/sites/siteCollection"))
using (SPWeb web = site.OpenWeb())
{
string listUrl = string.Format("{0}{1}", web.ServerRelativeUrl, "Lists/SomeList");
SPList list = web.GetList(listUrl);
}
Skapa ett listobjekt
När du skapar ett nytt listobjekt kan dess fält ställas in med syntax som liknar strängmatriser. Observera att dessa fält inte skapas i farten och definieras av schemat i listan. Dessa fält (eller kolumner) måste existera på servern, annars skapas skapandet. Alla listobjekt har titelfältet. Vissa listor kan ha obligatoriska fält som måste fyllas i innan objektet kommer att publiceras i listan.
I det här exemplet använder listan meddelandemallen. Förutom titelfältet innehåller listan det kroppsfält som visar innehållet i meddelandet på listan.
using (SPSite site = new SPSite("http://server/sites/siteCollection"))
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists["Announcements"];
SPListItem item = list.AddItem();
item[SPBuiltInFieldId.Title] = "My new item";
item[SPBuiltInFieldId.Body] = "Hello World!";
item.Update();
}