GridView de İsme göre sıralama nasıl yapılır? (C# , Asp.net, Visual Studio2010)

taner (1) 10 yıl önce sordu

GridView ile veri tabanından verileri çekiyorum çektiğim müşterilerin ismini alfabatik sıralayamıyorum

GridView in AutoSort özelliğini True yapıyorum sonra istediğim bölümün class ına SortExpression="KategoriAdi" tanımlıyorum çalıştırdığımda çalılşıyormuş gibi oluyor ama hiç bir işlem yapmıyor.

sebebi ne olabilir? ne yapmam lazım

kodlarım
aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Admin/adminmaster.master" AutoEventWireup="true" CodeFile="Musterilerilistele.aspx.cs" Inherits="Admin_Musterilerilistele" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <table border="1" cellpadding="0" cellspacing="0" width="100%">
        <tr>
            <th class="style6" height="41" scope="col" 
                style="color: #0066FF; text-align: left; background-color: #66CCFF">
                &nbsp;&nbsp; Müşteri Listesi</th>
        </tr>
        <tr>
            <td height="25">
                <table border="1" cellpadding="0" cellspacing="0" width="100%">
                    <tr>
                        <th class="style3" scope="col" width="20%">
                            Müşteri Adı Soyadı</th>
                        <th class="style3" scope="col" width="20%">
                            Kategorisi</th>
                        <th class="style3" scope="col" width="20%">
                            Firma Adı</th>
                        <th class="style3" scope="col" width="20%">
                            Cep Telefonu</th>
                        <th class="style3" scope="col" width="20%">
                            İlan</th>
                        <th class="style3" scope="col" width="20%">
                            Yer Göster</th>
                        <th class="style3" scope="col" width="20%">
                            <img border="0" src="Images/edit.png" /></th>
                        <th class="style3" scope="col" width="20%">
                            <img border="0" src="../images/sil.png" /></th>
                    </tr>
                </table>
            </td>
        </tr>
        <tr>
            <td>
                <asp:GridView ID="dlMusteriler" runat="server" AutoGenerateColumns="False" 
                    CellPadding="4" ForeColor="#333333" GridLines="None" 
                    onrowcommand="dlMusteriler_RowCommand" Width="100%" AllowSorting="True">
                    <AlternatingRowStyle BackColor="White" />
                    <Columns>
                         <asp:BoundField HeaderStyle-HorizontalAlign="Left" DataField="MusteriAdiSoyadi" HeaderText="MusteriAdiSoyadi" 
                            SortExpression="MusteriAdiSoyadi" >
<HeaderStyle HorizontalAlign="Left"></HeaderStyle>
                     
                        <asp:BoundField DataField="MusteriAdiSoyadi" HeaderText="Müşteri adı" />
                        <asp:BoundField DataField="FirmaAdi" HeaderText="Firma Adı" />
                        <asp:BoundField DataField="Cep" HeaderText="Cep Telefonu" />
                        <asp:BoundField DataField="MusteriAdminAD" HeaderText="Muşteri Sorumlusu" />
                        <asp:BoundField DataField="FirmaAdi" HeaderText="Firma Adı" />
                        <asp:HyperLinkField DataNavigateUrlFields="MusteriId" 
                            DataNavigateUrlFormatString="musteriiLanGoster.aspx?id={0}" 
                            DataTextField="HaberSayisi" HeaderText="H.Sayısı" />
                        <asp:HyperLinkField DataNavigateUrlFields="MusteriId" 
                            DataNavigateUrlFormatString="musteriHaberGoster.aspx?id={0}" 
                            DataTextField="yerGostermeSayisi" HeaderText="Yer.Sayısı" />
                        <asp:HyperLinkField DataNavigateUrlFields="MusteriId" 
                            DataNavigateUrlFormatString="MusteriGuncelle.aspx?id={0}" 
                            DataTextField="MusteriId" HeaderText="Düzenle" />
                        <asp:TemplateField HeaderText="Sil">
                            <ItemTemplate>
                                <asp:LinkButton ID="linkbuton" runat="server" 
                                    CommandArgument='<%#Eval("MusteriId") %>' Text="Sil"> </asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                    <EditRowStyle BackColor="#7C6F57" />
                    <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                    <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                    <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
                    <RowStyle BackColor="#E3EAEB" />
                    <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
                    <SortedAscendingCellStyle BackColor="#F8FAFA" />
                    <SortedAscendingHeaderStyle BackColor="#246B61" />
                    <SortedDescendingCellStyle BackColor="#D4DFE1" />
                    <SortedDescendingHeaderStyle BackColor="#15524A" />
                </asp:GridView>
          
            </td>
        </tr>
    </table>
</asp:Content>

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;

public partial class Admin_Musterilerilistele : System.Web.UI.Page
{

    public static string KategoriId = "";
    Fonksiyon system = new Fonksiyon();
    string islem = "";
    string MusteriId = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["AdminId"] == null)
        {
            Response.Redirect("Login.aspx");
        }

        KategoriId = Request.QueryString["KategoriId"];
        islem = Request.QueryString["islem"];
        MusteriId = Request.QueryString["MusteriId"];

        if (islem == "Sil")
        {
            system.cmd("Delete from Musteriler Where MusteriId=" + MusteriId);
            Response.Redirect("Musteriler.aspx");
        }

        DataTable dtMusteriler = system.GetDataTable("exec mustericek");
        dlMusteriler.DataSource = dtMusteriler;
        dlMusteriler.DataBind();


    }
    protected void dlMusteriler_RowCommand(object sender, GridViewCommandEventArgs e)
    {

        Response.Redirect("Musterilerilistele.aspx");
        system.cmd("Delete from Musteriler Where MusteriId=16");
        // Response.Redirect("Musteriler.aspx");

    }
  
}

 

murat 10 yıl önce

sorununuz devam ediyorsa lütfen bilgi verin. Eğer yazılan cevap size çözüm sağladıysa, sol tarafta bulunan çek simgesini, cevap olarak kabul et simgesini tıklayın.

Toplam 3 cevap


laboustasarim (693) 10 yıl önce cevapladı

merhaba aşağıdaki kodları ilgili satıra entegre ederseniz  alfabetik sıralamayı yapmış olursunuz

not sizin değişkenlerinize göre yeniden tanımlayınız şablondur amacınıza göre düzenleyebilirsiniz.

DataGrid ve GridView kontrollerinde sayfalama yaparken varsayılan olarak sayısal veya ileri geri tuşları sunulur. Bununla beraber bu kontroller, özel bir sayfalama şekli de oluşturmamıza izi vermektedir. Masaüstü uygulamalarında çok kullanılan alfabetik sıralamayı web ortamında da kullanacağız. Bu yöntemi üyelerin listesini alırken veya müşteri hesap kartlarınızı listelemek için kullanabilirsiniz. GridView’in footer satırını handle edip RowCreated olayını kullanacağız.

Sayfamızda bir tane GridView kontrol ekleyelim ve Başlayalım.

GridView nesnemizi oluşturup özelliklerini atadıktan sonra .cs tarafına geçip kodlarımızı ekleyelim. Kontrolün RowCreated olayında footer kısmana harflerimizi bir döngü içerisinde ekleyelim.

Ve sonuç:

saygılarımla

taner (1) 10 yıl önce cevapladı

Merhaba,

3 gündür yapamadım rica etsem kodları paylaşabilirmisiniz

Sadece müşteri adını bölümüne tıklanınca sıralasın yeter aslında basit olduğunu  biliyorum ama yapamadım

benim kodlarıma ekleyebilirseniz çalışacak kodları çok sevinirim.

cemphp (651) 10 yıl önce cevapladı
 <form id="form1" runat="server">
    <div>
    
        <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="AdSoyad" HeaderText="AdSoyad" SortExpression="AdSoyad" />
                <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
                <asp:BoundField DataField="KullaniciAdi" HeaderText="KullaniciAdi" SortExpression="KullaniciAdi" />
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DBConnectionString %>" SelectCommand="SELECT [AdSoyad], [Email], [KullaniciAdi] FROM [Personels]"></asp:SqlDataSource>
    
    </div>
    </form>

DataSource kullanarak kolayca yapabilirsiniz, SQL veritabanı ve datasource kullanarak testini yaptım sıralama düzgün şekilde çalışıyor.