Veysel Uğur KIZMAZ

Sharepoint 2010 Listeye Dinamik Eleman Ekleme ve Düzenleme

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

Bu makalemizde Sharepoint 2010’daki listelere Visual Studio 2010’dan dinamik eleman ekleme ve düzenleme işlemlerini incleyeceğiz.

Öncelikle bu işlem için yeni bir liste oluşturalım.
 
 
Create ile yeni liste oluşturma işlemine başlayalım.
 
 
Listemizin türü Announcement, ismi ise Ilanlar olsun.
 
 
Listemizi ekleme işlemini başarıyla tamamladık. Şimdi listemizin sütunlarına göz atalım.
 
 
 
Listenin sütunları yukarıdaki gibidir ve bu sütunlardan sadece 3 tanesinin gösterildiğini görebiliyoruz.
 
Yeni bir Empty Sharepoint Project (Farm Solution) oluşturalım ve yeni bir Application Page ekleyelim. Eklediğimiz sayfanın adı ElemanEkle olsun. Bu sayfamızda PlaceHolderMain içine 1 textbox 1 buton atalım ve aşağıdaki gibi düzenleyelim. Bu işlem şu şekilde çalışacaktır : Textbox’ta yazdığımız başlıkta bir elemanı Ilanlar listemize ekleyecektir.
 
  1. <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
  2.  
  3.     Title : <asp:TextBox ID="txbBaslik" runat="server"></asp:TextBox>
  4.  
  5.     <asp:Button ID="btElemanEkle" runat="server" Text="Eleman Ekle" OnClick="btElemanEkle_Click" />
  6.  
  7. </asp:Content>
  8.  
  9.  
 Şimdi codebehind tarafına geçelim ve kodlarımızı aşağıdaki şekilde oluşturalım.
 
  1. protected void btElemanEkle_Click(object sender, EventArgs e)
  2.         {
  3.             SPSite siteCollection = SPContext.Current.Site;
  4.             SPWeb web = siteCollection.RootWeb;
  5.             SPListItemCollection listeElemanlari = web.Lists["Ilanlar"].Items;
  6.             SPListItem eleman = listeElemanlari.Add();
  7.             eleman["Title"] = txbBaslik.Text;
  8.             eleman.Update();
  9.         }
 
  1. SPSite siteCollection = SPContext.Current.Site;
Bulunduğumuz site collection’da çalışacağımızı belirtiyoruz.
 
 
 
  1. SPWeb web = siteCollection.RootWeb;
Bulunduğumuz site collection’ın root web uygulamasında çalışacağımızı belirtiyoruz.
 
 
  1. SPListItemCollection listeElemanlari = web.Lists["Ilanlar"].Items;

Root web uygulamasındaki  Ilanlar listesinin elemanlarıyla işlem yapacağımızı belirtiyoruz.

 
 
  1. SPListItem eleman = listeElemanlari.Add();
Ilanlara yeni eleman ekleyeceğimizi söylüyoruz.
 
 

  1. eleman["Title"] = txbBaslik.Text;

Elemanın başlığını belirtiyoruz.

 
  1. eleman.Update();
Elemanı kaydediyoruz.
 
F5 ile projemizi çalıştıralım.
 
 
Eleman Ekle’ye tıklayalım. Sayfa yüklenmesi tamamlandığında Ilanlar listemize gidelim ve İlan 1’in eklenip eklenmediğini inceleyelim.
 
 
 
İlan 1 başarıyla eklendi.
 
Şimdi eklediğimiz elemanı düzenleme işlemini inceleyelim. Aynı örnek üzerinden devam edelim. Yeni bir buton ekleyelim ve bu butonumuzu da güncelleme işlemi için kullanalım.
  1. <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
  2.     Title : <asp:TextBox ID="txbBaslik" runat="server"></asp:TextBox>
  3.     <asp:Button ID="btElemanEkle" runat="server" Text="Eleman Ekle" OnClick="btElemanEkle_Click" />
  4.     <asp:Button ID="btElemanGuncelle" runat="server" Text="Eleman Güncelle" OnClick="btElemanGuncelle_Click" />
  5. </asp:Content>
 
 
Eleman güncelleme butonunun click eventını da aşağıdaki şekilde düzenleyelim ve inceleyelim.
  1. protected void btElemanGuncelle_Click(object sender, EventArgs e)
  2.   {
  3.       SPSite siteCollection = SPContext.Current.Site;
  4.       SPWeb web = siteCollection.RootWeb;
  5.       SPList liste = web.Lists["Ilanlar"];
  6.       SPQuery sorgu = new SPQuery();
  7.       sorgu.Query = "<Where><Eq><FieldRef Name='Title'/>" +
  8.                       "<Value Type='Text'>İlan 1</Value>" +
  9.                       "</Eq></Where>";
  10.  
  11.       SPListItemCollection listeElemanlari = liste.GetItems(sorgu);
  12.       SPItem eleman = listeElemanlari[0];
  13.       eleman["Title"] = txbBaslik.Text;
  14.       eleman.Update();
  15.  
  16.   }
 
 
  1. SPSite siteCollection = SPContext.Current.Site;
Bulunduğumuz site collection’da çalışacağımızı belirtiyoruz.
 
 
  1. SPWeb web = siteCollection.RootWeb;
Bulunduğumuz site collection’ın root web uygulamasında çalışacağımızı belirtiyoruz.
 
 
  1. SPList liste = web.Lists["Ilanlar"];
Root web uygulamasındaki Ilanlar listes ile işlem yapacağımızı belirtiyoruz.
 
 
  1. SPQuery sorgu = new SPQuery();

Düzenleme yapacağımız elemanı seçebilmek için yazacağımız CAML sorgusunun değişkeni

 

  1. sorgu.Query = "<Where><Eq><FieldRef Name='Title'/>" +
  2. "<Value Type='Text'>İlan 1</Value>" +
  3. "</Eq></Where>";

 

Title’I İlan 1 olan elemanLARı alacağımızı belirtiyoruz.
 
 
  1. SPListItemCollection listeElemanlari = liste.GetItems(sorgu);

Sorguya gore elemanlarımızı alıyoruz.

 

 
  1. SPItem eleman = listeElemanlari[0];
Aldığımız elemanlardan ilk eleman üzerinde işlem yapıyoruz.
 
 
  1. eleman["Title"] = txbBaslik.Text;

Elemanın başlığını belirtiyoruz.

 
 
  1. eleman.Update();
Elemanı kaydediyoruz (güncelliyoruz).
 
Şimdi F5 ile projemizi çalıştırıp deneyelim.
 
 
Eleman Güncelle’ye basalım. Sayfa yüklendikten sonra İlanlar listesine gidelim.
 
 
İlanımızın güncellendiğini görüyoruz.
 
 
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com