Alet çantamızı anlatmakla işe başlayalım.Formun üzerinde ;
* 1 adet TextBox (sayfa hesaplamasında değişken tutmak için kullanılacağından visible false yapıp arka planda işlevsellik kazandıracağız.)
* 1 adet Label (sayfa numaralarını yazmak için kullanacağız ki bu projede ismi : Label_sirala)
* 2 adet LinkButton (sayfalar arasında ileri-geri diye gezmemizi sağlayacak buttonlar)
* Tabi ki bir adet astsolistimiz DataList (DataList1 senaryomuzda hali hazır)
İlk olarak global değişlenlerimizi tanımlayalım;
string katID = string.Empty; // Bu değişken benim senaryomda kategoriye göre listeleme olduğundan kategori ID yi getiriyor.
public int Baslangic = 1;
public int SayfadakiKayitSayisi = 6;
public int BaslangicKaydi;
public int ToplamSayfaSayisi;
Şimdi Sayfa doldurmak ve Toplam kayıt sayısını almak için iki adet method yazalım;
private void SayfaDoldur()Şimdi gelelim en komplike kısım olan Page_Load Eventine yazacağımız kodlara ;
{
if (Baslangic != 1) Baslangic = Convert.ToInt32(TextBox1.Text);
BaslangicKaydi = (Baslangic * SayfadakiKayitSayisi) - SayfadakiKayitSayisi;
SqlDataAdapter Da = new SqlDataAdapter("Select ID,resim,fiyat,baslik From Arabalar where kategori=@katID", CStr);
Da.SelectCommand.Parameters.AddWithValue("@katID", katID);
DataSet Ds = new DataSet();
Da.Fill(Ds, BaslangicKaydi, SayfadakiKayitSayisi, "Arabalar");
DataList1.DataSource = Ds.Tables[0].DefaultView;
DataList1.DataBind();
}
private int ToplamKayitSayisi()
{
SqlCommand myComm = new SqlCommand("Select Count(*) From Arabalar where kategori=@katID", new SqlConnection(CStr));
myComm.Parameters.AddWithValue("@katID",katID);
myComm.Connection.Open();
int GeciciKayitSayisi = Convert.ToInt32(myComm.ExecuteScalar());
myComm.Connection.Close();
return GeciciKayitSayisi;
}
katID = Request.QueryString["kat"];Sayfalar arasında ileri - geri gezmemizi sağlayacak olan LinkButtonların Click Eventlerini de yazalım;
if (ToplamKayitSayisi() % SayfadakiKayitSayisi == 0)
{
ToplamSayfaSayisi = ToplamKayitSayisi() / SayfadakiKayitSayisi;
}
else
{
ToplamSayfaSayisi = ToplamKayitSayisi() / SayfadakiKayitSayisi + 1;
}
SayfaDoldur();
if (!Page.IsPostBack)
{
int i;
Label_sirala.Text = Label_sirala.Text + "< a href="default.aspx?sayfa=">" + i + "< /a>"; //Köşeli parantez ile a href arasındaki boşluğu silmeyi unutmayın siz (:
}
try
{
Baslangic = int.Parse(Request.QueryString["sayfa"].ToString());
TextBox1.Text = Baslangic.ToString();
SayfaDoldur();
}
catch
{
Baslangic = 1;
}
}
protected void LinkButton_Geri_Click(object sender, EventArgs e)
{
if (Baslangic > 1)
{
Baslangic = Baslangic - 1;
TextBox1.Text = Baslangic.ToString();
SayfaDoldur();
Label_sirala.Text = "";
}
}
protected void LinkButton_Ileri_Click(object sender, EventArgs e)
{
if (Baslangic < baslangic =" Baslangic" text =" Baslangic.ToString();" text = "">Ve işlem bu kadar (: Umarım yardımcı olabilmişimdir kolay gelsin ..
0 yorum:
Yorum Gönder