C#-GridView Filtreleme


Aslında işlem gridview e datasource olarak verilen datatable ın degısmesıdir.
Ilk bas daha onceden gridview e atanan source u Session da saklamıstık.Şimdi butona tıklamakla Session daki datatable ı yeni bir datatable a atarız.Daha sonra bu datatable ı Clone larız.Foreach dongusu ıcınde filtrelenecek sutuna göre arama yaparız.Eger filtrelenecek text le row daki kolonun degerı aynıysa o degeri yeni datatable ımıza eklerız.ve o datatable ı gridview immize datasource olarak veirriz.Boylece filtrelemis oluruz.Eger eski gridview i tekrar geri getirmek istiyorsak ilk bas Session da bulunan datatable gridview imize datasource olarak vermemiz yetecektir.

btn_Filter adlı butonun tıklanmasıyla calsacak kod blogu.
protected void btn_Filter_Click(object sender, EventArgs e)
        {
            if (grid_Product != null && grid_Product.Rows.Count != 0)
            {
                DataTable dtable = new DataTable();
                DataTable currentDTable = (DataTable)Session["GridProducts"];

                if (txt_FiltrelenecekText.Text != string.Empty)
                {
                    if (currentDTable != null && currentDTable.Rows.Count != 0)
                    {
                        dtable = currentDTable.Clone();
                        Boolean urunVarMi = false;
                        var index = 1;
                        foreach (DataRow row in currentDTable.Rows)
                        {
                            if (row["Product_Name"].ToString() == txt_FiltrelenecekText.Text)
                            {
                                row["Index"] = index.ToString();
                                dtable.ImportRow(row);
                                urunVarMi = true;
                                index++;
                            }
                        }
                        if (urunVarMi == true)
                        {
                            grid_Product.DataSource = dtable;
                            grid_Product.DataBind();
                        }
                        else
                        {
                            EkranaMesajYaz("Product is not found in list.");
                        }
                    }
                }
                else
                {
                    EkranaMesajYaz("Filter text is empty");
                }
            }
            else
            {
                EkranaMesajYaz("Product List is null");
            }

        }
Sorularınızı gkhnmnts@gmail adresine atabilrsiniz.

Hiç yorum yok:

Yorum Gönder