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.
- <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
- <asp:DropDownList ID="ddlSiteCollections" runat="server">
- </asp:DropDownList>
- <asp:DropDownList ID="ddlWebler" runat="server">
- </asp:DropDownList>
- <asp:TextBox ID="txbListeAdi" runat="server"></asp:TextBox>
- <asp:Button ID="btListeOlustur" runat="server" Text="Liste Oluştur" OnClick="btListeOlustur_Click" />
- </asp:Content>
Şimdi code behind tarafına gidelim ve aşağıdaki kodları yazalım. Sonrasında ne işe yaradıklarını inceleyelim.
- using System;
- using Microsoft.SharePoint;
- using Microsoft.SharePoint.WebControls;
- using Microsoft.SharePoint.Administration;
- using System.Web.UI.WebControls;
- namespace DinamikListeProje.Layouts.DinamikListeProje
- {
- public partial class ListeyiGoster : LayoutsPageBase
- {
- private SPFarm _farm = SPFarm.Local;
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!Page.IsPostBack)
- {
- SPWebService servis = _farm.Services.GetValue<SPWebService>("");
- foreach (SPWebApplication uygulama in servis.WebApplications)
- {
- foreach (SPSite site in uygulama.Sites)
- {
- ddlSiteCollections.Items.Add(site.Url);
- }
- ddlSiteCollections.Items[0].Selected = true;
- }
- }
- }
- private void Getir_Webler(string siteCollectionUrl)
- {
- SPSite site = new SPSite(siteCollectionUrl);
- foreach (SPWeb web in site.AllWebs)
- {
- try
- {
- ListItem eleman = new ListItem(web.Url, web.Name);
- ddlWebler.Items.Add(eleman);
- }
- finally
- {
- if (web != null) web.Dispose();
- }
- }
- ddlWebler.Items[0].Selected = true;
- }
- protected void btListeOlustur_Click(object sender, EventArgs e)
- {
- SPSite site = new SPSite(ddlSiteCollections.SelectedItem.ToString());
- SPWebCollection webs = site.AllWebs;
- SPWeb web = webs[ddlWebler.SelectedValue];
- SPList liste = null;
- foreach (SPList buListe in Web.Lists)
- {
- if (buListe.Title == txbListeAdi.Text)
- {
- liste = buListe;
- break;
- }
- }
- if (liste == null)
- {
- Guid listeId = web.Lists.Add(txbListeAdi.Text,
- "Liste kodla dinamik oluşturulmuştur",
- SPListTemplateType.Links);
- liste = web.Lists[listeId];
- liste.OnQuickLaunch = true;
- liste.Update();
- }
- }
- }
- }
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