Veysel Uğur KIZMAZ

Sharepoint 2010 Dinamik Liste Oluşturma

27.09.2011Okunma Sayısı: 5190Kategori: Sharepoint 2010

Daha önceki makalelerimizde listenin ne olduğunu, Sharepoint Designer’da, Visual Studio’da liste oluşturma ve ekleme işlemlerini görmüştük. Şimdi ise Visual Studio’da kodla listeyi nasıl oluşturacağımız inceleyelim.

Bu işlem için yeni bir Empty Sharepoint Project (Farm Solution) oluşturalım.
 
 
Projemizi oluşturduktan sonra yeni bir eleman ekleyelim : Application page
 
 
Add dedikten sonra Visual Studio, ShowLists.aspx isminde bir sayfa oluşturuyor.
 
 
Yalnız burada dikkat etmemiz gereken nokta, sayfanın tasarımı düzenlenirken Design sekmesi bulunmamaktadır. Yani tasarımımızı kodla yapmamız gerekiyor.
 
Şimdi, PlaceHolderMain isimli ContentPlaceHolder’ımıza toolboxtan 2  DropDownList 1 TextBox 1 Button sürükleyip bırakalım ve kodlarını şu şekilde düzenleyelim.
 
 
  1. <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
  2.  
  3.     <asp:DropDownList ID="ddlSiteCollections" runat="server">
  4.  
  5.     </asp:DropDownList>
  6.  
  7.     <asp:DropDownList ID="ddlWebler" runat="server">
  8.  
  9.     </asp:DropDownList>
  10.  
  11.     <asp:TextBox ID="txbListeAdi" runat="server"></asp:TextBox>
  12.  
  13.     <asp:Button ID="btListeOlustur" runat="server" Text="Liste Oluştur" OnClick="btListeOlustur_Click" />
  14.  
  15. </asp:Content>
  16.  
  17.  
 

 Şimdi code behind tarafına gidelim ve aşağıdaki kodları yazalım. Sonrasında ne işe yaradıklarını inceleyelim.

 
  1. using System;
  2.  
  3. using Microsoft.SharePoint;
  4.  
  5. using Microsoft.SharePoint.WebControls;
  6.  
  7. using Microsoft.SharePoint.Administration;
  8.  
  9. using System.Web.UI.WebControls;
  10.  
  11. namespace DinamikListeProje.Layouts.DinamikListeProje
  12.  
  13. {
  14.  
  15.     public partial class ListeyiGoster : LayoutsPageBase
  16.  
  17.     {
  18.  
  19.         private SPFarm _farm = SPFarm.Local;
  20.  
  21.         protected void Page_Load(object sender, EventArgs e)
  22.  
  23.         {
  24.  
  25.             if (!Page.IsPostBack)
  26.  
  27.             {
  28.  
  29.                 SPWebService servis = _farm.Services.GetValue<SPWebService>("");
  30.  
  31.                 foreach (SPWebApplication uygulama in servis.WebApplications)
  32.  
  33.                 {
  34.  
  35.                     foreach (SPSite site in uygulama.Sites)
  36.  
  37.                     {
  38.  
  39.                         ddlSiteCollections.Items.Add(site.Url);
  40.  
  41.                     }
  42.  
  43.                     ddlSiteCollections.Items[0].Selected = true;
  44.  
  45.                 }
  46.  
  47.             }
  48.  
  49.         }
  50.  
  51.         private void Getir_Webler(string siteCollectionUrl)
  52.  
  53.         {
  54.  
  55.             SPSite site = new SPSite(siteCollectionUrl);
  56.  
  57.             foreach (SPWeb web in site.AllWebs)
  58.  
  59.             {
  60.  
  61.                 try
  62.  
  63.                 {
  64.  
  65.                     ListItem eleman = new ListItem(web.Url, web.Name);
  66.  
  67.                     ddlWebler.Items.Add(eleman);
  68.  
  69.                 }
  70.  
  71.                 finally
  72.  
  73.                 {
  74.  
  75.                     if (web != null) web.Dispose();
  76.  
  77.                 }
  78.  
  79.             }
  80.  
  81.             ddlWebler.Items[0].Selected = true;
  82.  
  83.         }
  84.  
  85.  
  86.  
  87.         protected void btListeOlustur_Click(object sender, EventArgs e)
  88.  
  89.         {
  90.  
  91.             SPSite site = new SPSite(ddlSiteCollections.SelectedItem.ToString());
  92.  
  93.             SPWebCollection webs = site.AllWebs;
  94.  
  95.             SPWeb web = webs[ddlWebler.SelectedValue];
  96.  
  97.             SPList liste = null;
  98.  
  99.             foreach (SPList buListe in Web.Lists)
  100.  
  101.             {
  102.  
  103.                 if (buListe.Title == txbListeAdi.Text)
  104.  
  105.                 {
  106.  
  107.                     liste = buListe;
  108.  
  109.                     break;
  110.  
  111.                 }
  112.  
  113.             }
  114.  
  115.             if (liste == null)
  116.  
  117.             {
  118.  
  119.                 Guid listeId = web.Lists.Add(txbListeAdi.Text,
  120.  
  121.                     "Liste kodla dinamik oluşturulmuştur",
  122.  
  123.                     SPListTemplateType.Links);
  124.  
  125.                 liste = web.Lists[listeId];
  126.  
  127.                 liste.OnQuickLaunch = true;
  128.  
  129.                 liste.Update();
  130.  
  131.             }
  132.  
  133.         }
  134.  
  135.     }
  136.  
  137. }

 

 

 Sayfamızı başlangıç noktası yapalım.
 
 
F5 ile projemizi çalıştıralım.
 
 
Karşımıza bu ekran geldi. İlk sırada Site Collection’lar. İkinci sırada Site’lar, Textboxta ise Oluşturacağımız listenin ismi yer alacaktır. Seçimlerimizi yapalım ve Liste Oluştur’a basalım.
 
 
Sayfamızı yenilediğimizde listemizin geldiğini görmekteyiz.
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com