ASP.NET 3.5 ile gelen veri kontrolü ListView oldukça esnek bir yapı sunmaktadır. GridView ile yapılabilen tüm işlemleri gerçekleştirebildiğimiz bu kontrolde GridView’a ek olarak Insert işlemlerini de yapabiliyoruz. Diğer yandan oluşacak HTML çıktıda tamamen bizim elimizde, yani istediğimiz şekilde HTML çıktıyı oluşturabiliyoruz. GridView’da bu tarz bir işlemi yapmak neredeyse imkansızdı.
ListView’ın bir diğer avantajı ise sayfalama(paging) işlemlerini QueryString üzerinden yapıyor olabilmemiz! ListView kontrolü sayfalama işlemlerini DataPager adındaki bir kontrol üzerinde yapmaktadır(DataPager’ın da ASP.NET 3.5 ile geldiğini belirtmek gerekir). Normal şekilde oluşturulan ListView kontrolü sayfalama işlemlerini DataPager içerisindeki LinkButton’lar ile yapar; yani PostBack işlemi sonucunda çağrılan JavaScript fonksiyonları sayfalamanın yapılmasına yardımcı olur. Dolayısıyla sayfanın URL’sinde herhangi bir değişiklik olmaz. Eğer sayfalama işleminin QueryString üzerinde taşınan SayfaNo gibi bir değer ile UrunListele.aspx?SayfaNo=3 şeklinde gerçekleşmesini istiyorsak yapmamız gereken tek şey DataPager kontrolünün QueryStringField özelliğine SayfaNo gibi bir değer atamak olacaktır. Yine elimiz değmişken şu özellikten de bahsedeyim; DataPager’ın PageSize özelliğinden de bir sayfada kaç kayıt görüntüleneceğini belirleyebilirsiniz. Aşağıda DataPager üzerinde yapılan değişiklikler ve örnek bir ekran çıktısı yer alıyor.
<asp:DataPager ID="DataPager1" runat="server" QueryStringField="SayfaNo" PageSize="15">
…
</asp:DataPager>
Kullanıcıların QueryString üzerinden istediği sayfalara gidebilmesi ve arama motoru iyileştirmesi(SEO) açısından oldukça önemli ve kullanışlı bir ipucu aslında 😉
Allah razı olsun Listview, QueryString ile ilgili hiç bişey yapmamış, ne farkı kaldı GrisView den diye düşünüyordum
Teşekkürler. Mükemmel bir konu olmuş. Grid wievle saatlerce ugraşıp anca yapmıştım. Tabi mantık oturmamıştı kafamda
Datapager’ı uguladım sayfalamayı yapmıyor ama. Sürekli aynı kayıtlar geliyor. sayfanın linki şu: Urunler.aspx?id=3&SayfaNo=2 id den kaynaklanıyor olabilir mi? Nasıl çözebilirim.
QueryString’deki id nedir acaba? Aslında çok basit bir işlem, sorun çıkmaması gerekir ama gözden kaçan bir ayrıntı olabilir. ListView’ın tanımlandığı kısmı(<asp:ListView…. > kısmını) ve DataSource’un kod parçasını gönderebilirseniz yardımcı olmaya çalışırım. Kodlar çok uzunsa mail olarakda gönderebilirsiniz.