Giriş
VB.NET
CSharp.NET
SQL Server
Dokümanlar
Örnek Çalışmalar
Sorun Çözücü
11 Puan   Gridview ile Kayıtları Gruplamak
Caner ARAS 30 Temmuz 2008 Çarşamba 16:05
CSharp.NET
  Toplam (0) yorum yapıldı

Öncelikle sayfamıza bir (1) adet GridView ekliyoruz, buna da 3 adet boundfield ekliyoruz, adlarını İl, İlçe ve Semt olarak yaptım siz değiştirebilirsiniz.



            <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" OnSorting="GridView1_Sorting">

                <Columns>

                   <asp:BoundField DataField="IL" HeaderText="IL" SortExpression="IL" />

                   <asp:BoundField DataField="ILCE" HeaderText="ILCE" SortExpression="ILCE" />

                   <asp:BoundField DataField="SEMT" HeaderText="SEMT" SortExpression="SEMT" /> 

                </Columns>

           </asp:GridView>


using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

public partial class _CSS_E : System.Web.UI.UserControl

{

 

    private bool _sorted = false;

    private int _sortColumnIndex = -1;

    private string _sortColumnHeader = string.Empty;

 

 

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            GRD ();

        }

    }

 

    public void GRD()

    {

 

        DataTable data;

        MySqlDataAdapter da;

        data = new DataTable();

        da = new MySqlDataAdapter("select * from  XXXXX", conn);

 

        if (conn.State == ConnectionState.Closed)

        {

            conn.Open();

        }

 

        da.Fill(data);

        GridView1.DataSource = data;

        GridView1.DataBind();

    }

 

 

    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)

    {

        ResolveGroupingData(e.SortExpression);

    }

 

    private void ResolveGroupingData(string sortExpression)

    {

        foreach (DataControlField field in GridView1.Columns)

        {

            if (field.SortExpression == sortExpression)

            {

                _sorted = true;

                _sortColumnIndex = GridView1.Columns.IndexOf(field);

                _sortColumnHeader = field.HeaderText;

            }

        }

    }

 

    protected override void Render(HtmlTextWriter writer)

    {

        if (_sorted)

        {

           

            Table table = (Table)GridView1.Controls[0];

            Hashtable htLookUp = new Hashtable();

            foreach (GridViewRow row in GridView1.Rows)

            {

                int realIndex = table.Rows.GetRowIndex(row);

                string text = row.Cells[_sortColumnIndex].Text;

                if (!htLookUp.ContainsKey(text))

                {

                    htLookUp.Add(text, null);

 

                    GridViewRow newHeaderRow = new GridViewRow(realIndex, realIndex, DataControlRowType.DataRow, DataControlRowState.Normal);

                    TableCell newCell = new TableCell();

                    newHeaderRow.Cells.Add(newCell);

 

                    newCell.ColumnSpan = GridView1.Columns.Count;

                    newCell.BackColor = System.Drawing.Color.Gray;

                    newCell.ForeColor = System.Drawing.Color.White;

                    newCell.Font.Bold = true;

                    newCell.Text = string.Format(_sortColumnHeader, "&nbsp;:&nbsp;{0}", text);

 

                    table.Controls.AddAt(realIndex, newHeaderRow);

                }

 

            }

        }

        base.Render(writer);

    }

 

}

 


Kolay gelsin,



Bu makaleyi değerlendirerek üst sıralara taşıyabilirsiniz




Makale Yorumları Yazar Hakkında
aspxnedir.com | ASP.NET | microsoft.com
Bu sitede yayımlanan her türlü yazı makale ve/veya haberin kaynağı mutlaka bildirilmektedir, buradan kopyalanan yazı makale ve/veya haberin kullanım sorumluluğu yazara aittir
net@aspxnedir.com
Caner ARAS | 2005-2008

eXTReMe Tracker