ASP.Net GridView Sıralama Sayfalama İşlemleri..

Veritabanı ile GridView’ i doldurup, sayfalama ve sıralama işlemine göz atacağız. Öncelikle şunu belirtmekte fayda var diye görüyorum eğer editör olarak Visual Studio kullanıyorsanız sadece sürükle bırak yaparak bu işlemleri yapabilirsiniz, ama biz asp den geldiğimiz için kodu göre göre ne olduğunu anlaya anlaya yapmaya çalışacağız. Şunu itiraf  etmeliyim sıralama işlemini yapan bloğu http://www.forxy.net/ adresindeki http://www.forxy.net/ViewKonuDetay.aspx?KonuID=22 örneğinden gördüm :) İlk yapmaya çalıştığım örnek olduğu için daha kolay bir şekilde yapılabilirmiydi şuanlık bilemiyorum, ama saat gibi çalıştığını söyleyebilirim. Kodlara baktığınızda hemen hemen herşeyi anlayacaksınız zaten, eğer anlamazsanız sorun bildiğim kadarıyla açıklamaya çalışırım :)

Default.aspx

<form id="form1" runat="server">
	    <div>
	        <asp:gridview id="GridView1" runat="server" allowpaging="True" onpageindexchanging="GridView1_PageIndexChanging" allowsorting="True" onsorting="GridView1_Sorting">
	        </asp:gridview>
	    </div>
	    </form>

Default.aspx.cs

using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
doldur("ind"," desc");
}
}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
doldur("ind", " desc");
}

public SortDirection GridViewSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection)ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) {
if (GridViewSortDirection == SortDirection.Descending)
{
GridViewSortDirection = SortDirection.Ascending;
doldur(e.SortExpression, " desc");
}
else
{
GridViewSortDirection = SortDirection.Descending;
doldur(e.SortExpression, " asc");
}
}

public void doldur(string alanadi, string siralama)
{
SqlConnection cnn = new SqlConnection("Server=SqlServerAdresi; Database=VeriTabanıAdı; uid=KullanıcıAdı;pwd=Şifre;pooling=true; connection lifetime=10; connection timeout=5; packet size=1024;");
SqlDataAdapter da = new SqlDataAdapter("select * from TabloAdi", cnn);
DataTable dt = new DataTable("TabloAdi");
da.Fill(dt);
DataView dv = new DataView(dt);
dv.Sort = alanadi + siralama;
GridView1.DataSource = dv;
GridView1.DataBind();
};   }
}
  • vi

    teşekkürler, yardımcı oldu. peki başlıkları değiştirmek istersek? yada araya imaj olan kolon ekelemek istersek yada link ( href) gibi ?
    yine de teşekkürler.
    kolay gelsin.

  • apoStyLEE

    asp:gridview etiketleri arasına
    aşşağıdaki gibi sutun ekleyebilir ve istediğiniz etiketleri kullanabilirsiniz.

            
               
                    
                       buraya istediğin html etiketini ekleyebilirsin. 
                       veritabanından verileri alırkende < %#Eval("alanadi") %> diyeceksin ;)
                   
                
            
            
  • Barış Kıyak

    Ya arkadaşım denedim kopyala yapıştır falan iyi güzelde şu ind ile desc yerine ne gelmesi gerek

  • apoStyLEE

    Varsayılan olarak Grid’ in nasıl yükleneceğini belirliyorsunuz. Örneğin, veritabanındaki tablonuzun içerisinde id adında bir alan var, siz oraya;

    doldur(“id”,” desc”);
    yada
    doldur(“id”,” asc”);
    yazacaksınız.

  • http://www.surpriz.gen.tr yiğit

    Merhaba sizin paylaşımalrınızı beğeniyorum birde yaptığınız kodları bizimle paylaşıyorsunuz. bunuda zip olarak paylaşsanız çok sevinirim.. sizin siteniz benim sıkkılanılanlarda

    • apoStyLEE

      Çok eski bir yazı olduğundan bunu zip olarak paylaşmam çok zor :S Eğer yazanları yaparsanız bu işlemleri rahatlıkla yapabilirsiniz. Biraz gayret ;)

  • http://www.surpriz.gen.tr yiğit

    Evet yaptım hocam. Ben gridview yada datalist içinde sayfalama aşağı yukarı sanmıştım çok tşk ederim bu arada asp.net’te yeniyim baya zorlanıyorum sizlerin sayesinde biraz kolaylaştı artık aratırken ilk sizin siteye bakıyorum :)

  • http://taylan.somee.com taylan

    çok işime yaradı teşekkürler, birde updatePanel içine alınca Grid’i süper oldu:))