| 
                
             | 
        
        
            
                
                    
                        | 
                            ASP.NET DataList Kontrolü - 3 | 
                        
                             | 
                                
                     
                    
                        
                            
	
    
		
            | Gönderiliyor lütfen bekleyin... |   
        
	 
    
 
                         | 
                     
                 
             | 
        
        
            
                
                DataList 
				kontrolü üzerine üçüncü makalemize hoşgeldiniz. Bu yazmızda önce DataList 
				kontrolündeki bir elemanı (kayıdı) nasıl seçeceğimizi inceleyeceğiz. Daha sonra 
				DataList kontrolündeki değişik elemanlara nasıl stil uygulayacağımızı 
				göreceğiz.
  
		DataList kontrolüne 
				aşina değilseniz bu kontrol üzerine yazdığım 
					ASP.NET DataList Kontrolüne Giriş ve 
					ASP.NET DataList Kontrolü - 2  makalelerini okumanız sizin bu 
				makaleden daha çok fayda sağlamanıza yardım edecektir.
		1. 
						ASP.NET DataList Kontrolünde Bir Elemanı Seçme
		
		DataList kontrolünde herhangi bir elemanı seçmeniz 
				mümkündür. Seçme işlemini gerçekleştirmek için DataList sınıfının 
						ItemCommand olayını kullanmak gerekir. Bu olaya 
				karşı çalışacak bir metod (event handler) içinde gerekli işlemleri yaparız. "Bu 
				olayı nasıl tetikleyeceğiz?" şeklinde bir soru hemen aklınıza gelecektir. 
				DataListin bu olayını (ItemCommand) tetiklemek için bir komut tipinde düğmeyi 
				kontrolün ItemTemplate kısmına eklemeliyiz.
		Seçme olayını gerçekleştirmek için <asp:Button>,
				<asp:LinkButton> veya <asp:ImageButton> 
				kontrollerinden herhangi birini kullanabilriz. Tekrar belirtelim 
				düğmeler otomatik olarak seçme işini yapamazlar. Sadece  ItemCommand
					olayının tetiklenmesini sağlarlar.
		DataListen herhangi bir 
				elemanı(kayıdı) seçince o eleman ile ilgili daha detaylı/farklı bilgileri 
				ve normal görünüş(ItemTemplate)’ten farklı bir biçimde görüntüleyebiliriz. 
				Dikkat ederseniz elemanın içindeki verilerin başka bir kısmını görüntülemekten 
				ve bu görüntüle işlemini farklı bir stil(style) kullanarak yapabileceğimizi 
				söyledim. İsterseniz bunları nasıl başaracağımıza bir bakalım. 
		
		DataList’imizde elemanları görüntülerken ItemTemplate
				isimli bir şablon kullanılıyoruz. ItemTemplate şablonunda DataList’e 
				bağladığımız veri kaynağından gelen bir veya daha fazla alana ya da tamamına 
				yer verebiliriz. Genelde normal görünümde(ItemTemplate) sadece eleman hakkında 
				özet niteliğindeki bir takım alanları görüntülerken, eleman seçilince daha 
				detaylı bilgilere yer verilir. Seçilen elemanın şablonu SelectedItemTemplate’dir. 
				SelectedItemTemplate’de daha detaylı bilgi vereceğimiz için daha uzun olması 
				beklenir. 
		
		2. 
							SelectedItemStyle ile Seçilen Elemanın Görünümünü Ayarlama
		Seçilen elemanın görünümünün, stilinin, farklı olması 
				için SelectedItemStyle özelliğini kullanmalıyız. Bu özelliğin detaylarını 
				belirtmek için ya DataList’i ilk tanımladığmız kısmı veya 
				da ayrı bir yerde aynı şablon tanımlarken kullandığımız yapıya benzer bir 
				yapıyı seçmeliyiz.
		Seçilelen elemanın stilini DataList tanımı içinde 
				belirteceksek şu söz dizimine uymalıyız:
		<asp:datalist ... SelectedItemstyle-styleproperty=değeri 
			... > </asp:datalist>
		Yukarıdaki söz diziminden de anlaşılacağı gibi, 
				seçilen elemanın stilini DataList’in içinde tanımlarken önce selecteditemstyle
				gelmeli sonra araya - koyup ise hangi stil öğesini ayarlayacaksak 
				(styleproperty) onun ismi gelmeli. Son olarak =’in 
				sağına stil öğesinin değeri gelmeli. Örnek 
				olarak aşağıdaki kodu inceleyelim. Burda stil öğelelerinden Font-Bold ’u 
				ve BackColor’ı ayarlıyoruz. 
		
		<asp:DataList id=DataList1 
			.... 
		
		 SelectedItemStyle-Font-Bold="True"
			
		   
				SelectedItemStyle-BackColor="PapayaWhip">
		
		Seçilen elemanın görünümünü ayrı bir şablon tanımı 
				gibi de yapabileceğimizi söylemiştik. Bunun için bize sunulan söz dizimi:
		 <asp:datalist ... >
		   
						<selecteditemstyle styleproperty1=değer1, styleproperty2=değer2 
						.... > </selecteditemstyle> 
		</asp:datalist>
				
		Dikkat ederseniz yine iş özünde stil öğerine ve 
				onların değerlerine geliyor. İlk metotdan tek farkı farklı yerlerde 
				tanımlanmalarından dolayı ufak bir kaç yöntem farklılığıdır. İsteseniz 
				yukarıdaki örneği bu sefer ayrı bir şablon tanımı gibi yapalım:
		<SelectedItemStyle 
				Font-Bold="True" BackColor="PapayaWhip"></SelectedItemStyle>
		
		
		Stil ile bu kadar 
				ilgilendiğimiz yeter sanırım artık DataList’in bir elemanını seçme konusunda 
				tam bir örnek yapalım. Burda ayrıca SelectedItemTemplate’i de inceleme fırsatı 
				bulacağız.
		3. 
								DataList’en Bir Eleman Seçme Örneği
		Her zamanki gibi önce Web Formumuzu (HTML 
				kodumuzu) yazalım. İlgili kodumuzda <form> tagı ve içindekileri 
				incelememizin yeterli olacağı kanaatindeyim:
		
			
				
					
						<center> 
								   <asp:datalist id="DataList1" runat="server"
								 
								      SelectedItemStyle-Font-Bold="True" 
								SelectedItemStyle-BackColor="PapayaWhip" 
								      ItemStyle-Font-Size="2" 
								ItemStyle-Font-Name="Verdana"
								 
								      OnItemCommand="DataList1_ItemCommand" 
								Width="90%"> 
								 
								   <SelectedItemStyle Font-Bold="True" 
								BackColor="PapayaWhip"></SelectedItemStyle> 
								 
								   <SelectedItemTemplate> 
								      <TABLE borderColor="#990033" 
								cellSpacing="0" cellPadding="3" width="100%" border="1"> 
								         <TR> 
								            <TD 
								align="center" bgColor="#990000" colSpan="2"> 
								               <FONT 
								color="#ffffff" size="3">DETAYLAR</FONT> 
								            </TD> 
								         </TR> 
								         <TR> 
								            <TD>SupplierID:</TD> 
								            <TD 
								align="left"><%# DataBinder.Eval(Container.DataItem, "SupplierID") 
								%></TD> 
								         </TR> 
								         <TR> 
								            <TD>CompanyName: </TD> 
								            <TD 
								align="left"><%# DataBinder.Eval(Container.DataItem, "CompanyName") 
								%></TD> 
								        </TR> 
								        <TR> 
								            <TD>ContactName:</TD> 
								            <TD 
								align="left"><%# DataBinder.Eval(Container.DataItem, "ContactName") 
								%></TD> 
								        </TR> 
								        <TR> 
								           <TD>ContactTitle:</TD> 
								           <TD 
								align="left"><%# DataBinder.Eval(Container.DataItem, "ContactTitle") 
								%></TD> 
								        </TR> 
								        <TR> 
								           <TD>Address:</TD> 
								            <TD 
								align="left"><%# DataBinder.Eval(Container.DataItem, "Address") 
								%></TD> 
								       </TR> 
								       <TR> 
								         <TD>City:</TD> 
								         <TD 
								align="left"><%# DataBinder.Eval(Container.DataItem, "City") 
								%></TD> 
								       </TR> 
								      </TABLE> 
								   </SelectedItemTemplate>
						 
							 
								   <ItemStyle Font-Size="2pt" 
								Font-Names="Verdana"></ItemStyle> 
								   <ItemTemplate> 
								      <TABLE> 
								         <TR> 
								            <TD>SupplierID:</TD> 
								            <TD 
								align="left"><%# DataBinder.Eval(Container.DataItem, "SupplierID") 
								%></TD> 
								         </TR> 
								         <TR> 
								            
								<TD>CompanyName:</TD> 
								            <TD 
								align="left"><%# DataBinder.Eval(Container.DataItem, "CompanyName") 
								%></TD> 
								         </TR> 
								         <TR> 
								            <TD 
								colSpan="2"> 
								               <asp:Button 
								id="btnDetaylar" Text="Detaylar" Runat="server"></asp:Button> 
								            </TD> 
								         </TR> 
								       </TABLE> 
								    </ItemTemplate> 
								    <SeparatorTemplate> 
								       <hr> 
								    </SeparatorTemplate> 
								  </asp:datalist>
								 
							</center>  | 
				 
			 
		Ornek5.aspx
		
		Yukarıdaki Ornek5.aspx
				koduna dikkatlice bakarsanız; önce SelectedItem Template’in sonra ise Item 
				Template’in geldiğini göreceksiniz. Ayrıca SelectedItem Template’de seçilen 
				elemanla ilgili 6 farklı alanın görüntülendiğini buna karşın 
				ItemTemplate’de ise sadece 2 alanın ve bir de bir düğmenin yeraldığını 
				görürsünüz. Ayrıca ItemStyle ve SelectedItemStyle’ların da DataList içine 
				eklendiğini göreceksiniz. Burda dikkatinizi OnItemCommand="DataList1_ItemCommand"
					ifadesine çekmek istiyorum. Bu ifade ile ItemCommand 
				olayına karşı çalışmasını istediğimiz metodu belirtiyoruz. Bu metodu arkaplanda 
				çalışan C# kodumuzda inceleyeceğiz. 
		
				
   
     private 
        void Page_Load(object sender, System.EventArgs e) 
        { 
           if(!Page.IsPostBack)  
               VeriyiBagla();  
        }  
         
        public void VeriyiBagla()  
        {  
           // Baglanti nesnemiz: 
            SqlConnectionbaglanti=new SqlConnection("server=abuzer;database=Northwind;uid=Ahmet;pwd=ahmet"); 
         
         
           // SQL sorgu komutumuz:  
           SqlCommand komut = new SqlCommand();  
         
            komut.CommandText = @"SELECT SupplierID, CompanyName 
        FROM Suppliers ORDER BY SupplierID "; 
         
            // komuta hangi baglantiyi kullancagini bildiriyoruz: 
         
            komut.Connection = baglanti; 
         
           // Veri Adaptörümüz:  
           SqlDataAdapter veriAdaptoru = new SqlDataAdapter(komut); 
         
         
           DataTable veriTablosu = new DataTable(); // Veri tablomuz: 
         
         
           baglanti.Open(); // Baglantiyi açalim:  
         
           veriAdaptoru.Fill( veriTablosu ); // Veriyi dolduralim: 
         
         
           baglanti.Close(); // Baglantiyi kapatalim:  
         
           // sonuçlari DataList’e baglayalim:  
           DataList1.DataSource = veriTablosu; DataList1.DataBind(); 
         
         
        } 
      public void DataList1_ItemCommand(object 
        source, System.Web.UI.WebControls.DataListCommandEventArgs e)  
        { 
           // Seçilen index hangisi onu bir alalım:  
           DataList1.SelectedIndex = e.Item.ItemIndex;  
         
           // Baglanti nesnemiz:  
           SqlConnectionbaglanti=newSqlConnection("server=abuzer;database=Northwind;uid=Ahmet;pwd=ahmet"); 
         
         
           // SQL sorgu komutumuz:  
           SqlCommand komut = new SqlCommand();  
         
           komut.CommandText = @"SELECT SupplierID, CompanyName, 
        ContactName, ContactTitle, Address, City FROM Suppliers ";  
         
           // komuta hangi baglantiyi kullancagini bildiriyoruz: 
         
           komut.Connection = baglanti;  
         
           // Veri Adaptörümüz:  
           SqlDataAdapter veriAdaptoru = new SqlDataAdapter(komut); 
         
         
           DataTable veriTablosu = new DataTable(); // Veri tablomuz: 
         
         
           baglanti.Open(); // Baglantiyi açalim:  
         
           veriAdaptoru.Fill( veriTablosu ); // Veriyi dolduralim: 
         
         
           baglanti.Close(); // Baglantiyi kapatalim:  
         
           // sonuçlari DataList’e baglayalim:  
           DataList1.DataSource = veriTablosu;  
           DataList1.DataBind();  
        }   | 
   
 
			
					Ornek5.aspx.cs
		
		
		
		Yukarıdaki arkaplan 
				kodunda 3 temel metoda yer verdik. Bunlardan birincisi, sayfa ilk yüklendiğinde 
				çağrılan PageLoad() ’dır ki bunun içinde sadece sayfa eğer sunucuya gidip 
				gelmediyse (IsPostBack metodunda faydalanarak) VeriyiBagla() medotumuzu 
				çağrıyoruz. VeriyiBagla() metodunda ise SQL Server’deki Nortwind veritabanından 
				Suppliers tablosundan SupplierID ve CompanyName’lerin tamamını çekiyoruz ve 
				sonuçları DataList1’e bağlıyoruz. Buraya kadar yaptıklarımızı diğer makalelerde 
				de sık sık yaptık. Fakat DataList1_ItemCommand() metodu bizim 
				için yeni kavramlar içermektedir. 
		
		Öncellikle DataList1_ItemCommand() metodumuzda;
		DataList1.SelectedIndex = 
					e.Item.ItemIndex; 
		
		ifadesi ile DataList’in hangi elemanın seçildiğini 
				buluyoruz. Burda e; System.Web.UI.WebControls.DataListCommandEventArgs
				sınıfından bir nesnedir. e’nin Item özelliğinin, ItemIndex özelliğinden 
				faydalanarak DataList’in hangi elemanın seçildiğini kendisine bildirmek 
				için, DataList’in SelectedIndex özelliğini değiştiriyoruz. Sonra ise daha 
				detaylı bilgileri veritabanınnda getirecek ilgili işlemleri yapıyoruz.
		Sayfayı ilk çalıştırdığımızda karşımıza şu şekilde bir 
				ekran çıkmalı. 
		
		 
		
		Eğer Detaylar düğmelerinden birne 
				tıklarsak o elemanla ilgili detayları şuna benzer bir şeklide 
				görüntüleyecektir:
		 
		DataList’in 
								Değişik Elemanlarının Görünümünü Ayarlama
		Her ne kadar bu makalemizde SelectedItemStyle ile 
				seçilen elemanın stilini değiştirme üzeinde durduysak da; aslında diğer eleman 
				türleri içinde stil kullanma şansımız vardır. Bu stil türleri şunlardır:
		
			
				
					| ItemStyle | 
					Herhangi 
							bir elemanın stili | 
				 
				
					| AlternatingItemStyle
							
					 | 
					Art 
							arda gelen veri satırlarının birinin diğerinden farklı olması için kullanılan 
							AlternatingItem’lar için kullanılır.  | 
				 
				
					| HeaderStyle | 
					Kontrolünün 
							verileri alt alta yazmasından önce sadece en üstte bir defa görünen başlığın 
							stilidir. | 
				 
				
					| FooterStyle | 
					En 
							altında yine sadece bir defa görünen altlık diyebileceğimiz kısmın stilidir. | 
				 
				
					| SeperatorStyle | 
					Veritabanından 
							gelen her bir satırı diğerinden ayırmak için kullanılabilan kısmın stilidir. | 
				 
				
					| SelectedItemStyle | 
					Seçlien 
							bir eleman için kullanılan stildir. | 
				 
				
					| EditItemStyle | 
					Güncellemek 
							esnasında kullanılan stildir. | 
				 
				
					| ControlStyle | 
					Kontrolün 
							genel stilidir. | 
				 
			 
		
		Tüm bu stilller TableItemStyle 
						sınfından birer nesnedir. Yukarıdaki stillerin 
				kullanımlarına dair birer örneği kendinizin, makelemizin 
					
							2. SelectedItemStyle ile Seçilen Elemanın Görünümünü Ayarlama kısmından 
							faydalanarak yapmaya çalışmanızı, hatta isterseniz bu çalışmanızı benimle 
							paylaşmanızı, tavsiye ederim. 
		
		Bu makalemizde; DataList’in bir elemanını seçmeyi, 
				değişen ve diğer elemanlara nasıl stiller uygulayacağımızı inceledik. Bir 
				sonraki makalemizde DataList’teki elemanları nasıl yerinde güncelleyeceğizi ve 
				onları nasıl sileceğimizi öğreneceğiz.
		
                
                Makale: 
                ASP.NET DataList Kontrolü - 3 ASP.NET Ahmet Faruk Nacaroğlu 
             | 
        
        
            | 
             | 
        
        
            | 
                 
             | 
        
        
            
                
                
                    
                        - 
                            
                        
 
                        - 
                            
Eklenen Son 10  
                         
                        - 
                            
Bu Konuda Geçmiş 10 
                         
                     
                    
                        
                            Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
                         
                        
                            Son Eklenen 10 Makale Yükleniyor
                         
                        
                            Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
                         
                     
                 
                
                
             | 
        
        
            | 
                
             |