GridView da Sıralama İşlemi
Merhaba arkadaşlar. Bir Asp.Net makalesinde daha birlikteyiz. Bu makalemizde GridView nesnesinde seçili sutuna göre sıralama işlemini gerçekleştireceğiz.
Default.aspx sayfasını Şekil 1 deki gibi oluşturun.
Default.aspx sayfasında <Columns> </Columns> arasına sutunlarımızı tanımlayacağız. Tanımladığımız sutunlarda sıralama işlemini gerçekleştirebilmemiz için, SortExpression ı tanımlamalıyız. ( SortExpression="CustomerID" gibi.)
Kod kısmında GridView in AllowSorting özelliğini true tanımlamalıyız. (GridView1.AllowSorting = true; ).Diğer açıklamalar kod kısmında detaylı olarak verilmiştir.
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" OnSorting="Sirala">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="CustomerID" SortExpression="CustomerID" ReadOnly="true" HeaderText="Customer ID" />
<asp:BoundField DataField="CompanyName" SortExpression="CompanyName" ReadOnly="true" HeaderText="Company Name" />
<asp:BoundField DataField="ContactName" SortExpression="ContactName" ReadOnly="true" HeaderText="Contact Name" />
<asp:BoundField DataField="Address" SortExpression="Address" ReadOnly="true" HeaderText="Address" />
<asp:BoundField DataField="City" SortExpression="City" ReadOnly="true" HeaderText="City" />
</Columns>
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
</div>
</form>
</body>
</html>
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
public partial class _Default : System.Web.UI.Page
{
DataView dv;
protected void Page_Load(object sender, EventArgs e)
{
OleDbConnection baglan= new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0; Data Source=" + Server.MapPath("App_Data//Northwind.mdb"));
OleDbDataAdapter da = new OleDbDataAdapter("Select CustomerID,CompanyName,ContactName,Address,City From Customers",baglan);
DataTable dt = new DataTable("Customers");
da.Fill(dt);
dv = dt.DefaultView;
//GridView nesnesinin otomatik sütun almaması
//ve BoundField ile elle oluşturduğumuz
// sutun alanlarını alması için false yapıyoruz.
GridView1.AutoGenerateColumns = false;
//GridView daki başlık kısımlarına tıklayarak
//sıralama yapması için AllowSorting true yapılıyor.
GridView1.AllowSorting = true;
GridView1.DataSource = dt;
GridView1.DataBind();
}
public void Sirala(object sender, GridViewSortEventArgs e)
{
//Sıralama kriteri label de belirtiliyor.
Label1.Text = "Sıralama Kriteri:" + e.SortExpression.ToString();
//sıralama yapacağımız sutunu belirtiyoruz.
dv.Sort=e.SortExpression;
GridView1.DataSource = dv;
GridView1.DataBind();
}
}
Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek dileğiyle. Hoşçakalın. Bahadır ŞAHİN