09 December 2016

ASP.NET DataList

Veri Kaynağı Kontrollerinden biri olan Repeater kontrolünü önceki notlarımızda inceledik. Burada bir başka veri kaynağı kontrolü olan DataList ile ilgili bilgiler yer alacak. Bu kontrol Repeater kontrolüne göre daha kapsamlıdır. Burada da şablon (template) kullanımı söz konusudur. Templatelerinin benzemesine rağmen bu iki kontrol birbirlerini yerine kullanmazlar. Aralarında önemli farklar vardır.

DataList ve Repeater Arasındaki Fark

  1. DataList kontrolünün veriyi bir tablo (<table>) içerisine alarak gösterir. Repeater kontrolünde ise “HeaderTemplate” ve “FooterTemplate” özelliklerini kullanarak kendinize ait bir taslak yaratmanız gerekir.
  2. DataList kontrolünün sahip olduğu “ItemTemplate”, “AlternatingItemTemplate” gibi taslak özellikleri görsel olarak değiştirilebilmektedir. Repeater’da bu özellik yoktur.
  3. DataList kontrolü verileri yatay olarak da sıralayabilmektedir. Repeater kontrolünde bu olay yoktur.
  4. DataList kontrolünde mevcut olan “EditItemTemplate” sayesinde DataList kontrolü birden fazla veriyi gösterirken, tek bir satırın “Güncelle” modunda açılması sağlanabilir.
  5. DataList kontrolü özellikler penceresinden tanımlanabilen “GridLines”, “CellPadding”, “CellSpacing” gibi görsel özelliklere sahiptir. Repeater’a bir artıdır.

DataList Templateler

  • AlternatingItemStyle : Verilerin okunmasını kolaylaştırma amaçlı birbirini takip eden verilerde farklı stil kazandırma taslağı.
  • AlternatingItemTemplate : Çekilen verilerin birbirinden ayrıştırılabilmesi amaçlı verileri birbirinden ayrı görünüme kavuşturabilmek için kullanılır.
  • EditItemStyle : Veride düzenleme yapabilmek için kullanacak olduğumuz alan style taslak.
  • EditItemTemplate : Veride düzenleme yapabilmek için kullanacak olduğumuz taslaktır.
  • FooterStyle : En altta görünecek kısmın style taslağı.
  • FooterTemplate : En altta görünecek kısmın taslağı.
  • HeaderStyle: En üstte görünecek kısmın style taslağı.
  • HeaderTemplate : En üstte görünecek kısmın taslağı.
  • ItemStyle : Görüntülenecek olan elemanlar için style taslağı.
  • ItemTemplate : En önemli taslak. Verilerin listeleneceği satırları düzenlemek için kullanılacak.
  • SelectedItemStyle : Seçili verinin style belirlenmesi için kullanılan taslaktır.
  • SelectedItemTemplate : Seçili olan veriyi, diğer verilerden ayırt etmek için kullanılan taslaktır.
  • SeparatorStyle : Veritabanından gelen her bir satırı diğerinden ayırmak için örneğin yatay çizgi gibi elamanların style taslak.
  • SeparatorTemplate : Veritabanından gelen her bir satırı diğerinden ayırmak için örneğin yatay çizgi gibi elamanların taslağıdır.

Örnek:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="DataList_Sample.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
 <title></title>
 <style type="text/css">
 #myDiv
 {
 height:200px;
 width:200px;
 text-align:center;
 }
</style>
 </head>
 <body>
 <form id="form1" runat="server">
 <div>
 <asp:DataList ID="DataList1" runat="server" RepeatColumns="4">
 <ItemTemplate>
 <div id="myDiv">
 <asp:Image ID="Image1" ImageUrl='<%#Eval("ResimYolu") %>' runat="server" />
 </div>
 </ItemTemplate>
 </asp:DataList>
 </div>
 </form>
 </body>
 </html>

aspx.cs dosyası

using System;
 using System.Data.SqlClient;
 using System.Data;
namespace DataList_Sample
 {
 public partial class WebForm1 : System.Web.UI.Page
 {
 protected void Page_Load(object sender, EventArgs e)
 {
 SqlConnection sqlcon = new SqlConnection("server=.;database=northwind;trusted_connection=true");
 SqlDataAdapter da = new SqlDataAdapter("select * from products",sqlcon);
 DataTable dt = new DataTable();
 da.Fill(dt);
 DataList1.DataSource = dt;
 DataList1.DataBind();
 }
 }
 }