Anasayfa / Yazılım / ASP.NET / Repeater kontrolünün kullanımı – veri listeleme

Repeater kontrolünün kullanımı – veri listeleme

Bir süredir yoğunluk nedeni ile yazı paylaşamadım. Şimdi bir örnek paylaşmak istiyorum, gelen sorular üzerine bu örneği paylaşıyorum. Aslında daha önce Repeater ile yapmış olduğumuz örneklere çok benzer bir uygulama..

Uygulamam da veritabanımda mevcut olan kayıtlardan sadece aktif olan yazıların görünmesini isteyeceğim. Şimdi adım adım uygulamaya geçelim. Öncelikle SQL Server Management Studio’da blog adında bir veritabanı oluşturdum. Daha sonra bu veritabanı içinde bir tablo oluşturdum, tablomun adı yazilar. Alanlar ise şu şekilde :

YaziID = int
Baslik = nvarchar (500)
Icerik = nvarchar (1000)
Aktifmi = bit (isterseniz buna da text diyebilirsiniz)

Veritabanımı oluşturdum. Veritabanı oluşturmayı burada ayrıntılı şekilde anlatmıyorum, çünkü bu yazıda amacımız Repeater nesnesinin kullanımı ve filtreleme yapmak.

Zaten üstteki image dosyasından da nasıl bir tablo oluşturulacağı belli. Ben bu tablomun içinde toplamda 5 tane veri ekledim. Bu 5 veriden ikisinin aktifmi alanı TRUE. Şimdi yapmak istediğim işlem aktif olan yazıları sadece veritabanımdan çekmek.

Bunun için aslında yapılması gereken sadece SQL sorgusu içinde WHERE deyimini kullanmak. Şimdi Visual Studio tarafına geçiyoruz. Ve bir boş WEB site projesi oluşturuyoruz. Projemizin web.config dosyasında connectionStringi oluşturuyorum.

web.config dosyası :







    
        
    
  
    
  


Web config dosyamı bu şekilde oluşturdum. Daha sonra projemde sağ tıklayıp bir ASPX web formu ekliyorum. Varsayılan olarak Default.aspx adını kullandım. Bu formun design alanında iken div içine bir adet Toolbox menüsünden Data alanından Repeater ekliyorum. Kodlarım aşağıdaki gibi :

Default.aspx sayfası :

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>





    


    
Başlık : <%#Eval("Baslik") %>
İçerik : <%#Eval("Icerik") %>

Görüntülemek istediğim alanları Repeater kontrolünün ItemTemplate şablonu içinde tanımladım. Benim görüntülemek istediğim alanlar tablom içinde sadece Başlık ve İçerik. Dolayısı ile iki değer mevcut.

Şimdi işin kod tarafına geçip, bu Repeater kontrolüne verimizi bağlamak ve bunu yapabilmek içinde veri tabanı bağlantısını sağlamamız gerekiyor. Bu işlemi yapıyorum. Açıklamalarım da kod bloğumda yer alıyor. Bunun için kodlarım :

Default.aspx.cs Dosyası :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //ConnectionStringimi WEB.config dosyasından okuyorum.
        string connString = ConfigurationManager.ConnectionStrings["blogBaglanti"].ConnectionString;
        //ConnectionStringimi bir SQLConnection nesnesine bağlıyorum.
        SqlConnection conn = new SqlConnection(connString);
        //Veritabanımdaki tablomdan ben sadece iki alan çekeceğim için Baslik ve Icerik diyorum, filtreleme kısmında ise
        // Aktifmi alanı sadece 'True' olanlar görünsün diye WHERE deyimini kullanıyorum.
        SqlCommand comm = new SqlCommand("SELECT Baslik, Icerik FROM Yazilar WHERE Aktifmi='True'", conn);
        //Verimi okumak için bir DataReader nesnesi tanımlıyorum
        SqlDataReader reader;

        try
        {
            //Bağlantımı açıyorum.
            conn.Open();
            //Reader nesnem için sql komutumu çalıştırıyorum
            reader = comm.ExecuteReader();
            //Repeater nesnemi verime bağlama işlemi yapıyorum.
            Repeater1.DataSource = reader;
            Repeater1.DataBind();
            //Reader nesnemi kapatıyorum.
            reader.Close();
        }
            //hata olursa vereceğim mesaj.
        catch
        {
            Response.Write("bir hata oluştu");
        }
            //Bağlantımı kapatıyorum
        finally
        {
            conn.Close();
        }

    }
}

Görüldüğü gibi sadece SQL Query kısmımda bir filtreleme yapmam yeterli. Bunun için tablomda uygun şekilde bir alan açtım ve bu alana balı olarak WHERE ile filtreleme yaptım. İstenirse bu durumu bir Comboboxta seçimlilik esası ile de yapabiliriz..

Bir yorum

  1. Teşekkürler..Ellerinize sağlık

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir