Asp.net Datalist Custom Page Control From Database

Evet Bazen asp.net de datalistlerde paging yapmak izdırab olabilir ama eger dinamik içerikli ve resimleri simetrik olmayan yanı sıralama gerektıren bir listelemeniz var ise bu control işimize yarayabilir.

Öncelikle database de urunler tablosu ıcıne

urunadı – urunresmi – page – order field lerini içeren bir tablo olusturalım

daha sonra bir ascx içine datalistimizi page fieldına gore gruplayıp cekelim böylece eklemek istediğiniz kadar sayfa otomatik olarak page controle eklenecektir.

%@ Control Language="C#" AutoEventWireup="true" CodeFile="Page_Control.ascx.cs" Inherits="ascx_Page_Control" %>

 

evet hyperlink kısmımız tahmin edebileceğiniz gibi 1 2 3 4 gıbı sayfaların image larını ıcermekte.

daha sonra page_control.aspx.cs dosyasında

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
       HyperLink hl = ((HyperLink)e.Item.FindControl("hl"));
       
        int count = DataList1.Items.Count;

        //if(Request.QueryString["page"])
 int item = e.Item.ItemIndex;
            int i = item + 1;

        if (e.Item.ItemIndex == Convert.ToInt32(Request.QueryString["page"]) - 1)
        {
           
            
            hl.ImageUrl = "../images/button/" + item + "_h.gif";

        }
      hl.NavigateUrl = "../Default.aspx?page=" + i;
    }

burada eğer default.aspx de Request.QueryString[“page”] yok ise direk olarak 1 e yonlendırılecektir.

default.aspx de ise şöyle bir alicengiz olayı yapmamız gerekecektır.

protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["page"] == null)
        {
            Response.Redirect("Default.aspx?page=1");
        }
}

 

Leave a Reply