Aralarından seçim yapabileceğiniz çok sayıda farklı kontrol! ASP.NET'te verileri görüntülemek için hangi denetimin kullanılacağını belirlemek için en iyi yöntemler nelerdir?
Aralarından seçim yapabileceğiniz çok sayıda farklı kontrol! ASP.NET'te verileri görüntülemek için hangi denetimin kullanılacağını belirlemek için en iyi yöntemler nelerdir?
Yanıtlar:
Gerçekten neyi başarmaya çalıştığınla ilgili
Gridview - Sınırlı tasarım, html tablosu gibi çalışır. Düzenleme / güncelleme, sayfa, sıralama gibi daha fazla yerleşik işlev. Çok fazla ek yük.
DataGrid - Gridview'un eski sürümü. Bir gridview, bir süper veridir.
Datalist - Gridview'un daha özelleştirilebilir versiyonu. Ayrıca biraz ek yükü var. Kendiniz tasarlamak zorunda olduğunuz için daha fazla manuel çalışma.
ListView - yeni Datalist :). Gridview'da sayfalamayı kullanabileceğiniz ve işlevsellik gibi inşa edebileceğiniz, ancak tasarım özgürlüğüne sahip olduğunuz neredeyse veri uzmanı ve gridview karması. Bu ailedeki yeni kontrollerden biri
Tekrarlayıcı - Çok hafif. Üstbilgiler, Altbilgiler gibi yerleşik işlevler yok. En az ek yükü vardır.
Diğer herkes ona vurdu: Bağımlı.
Şimdi bazı özel rehberlik için (WebDude'un yukarıdaki mükemmel cevabını genişletiyoruz) ...
Tasarımınız, verilerin doğal bir elektronik tablo veya ızgara görünümüne uyuyor mu? GridView .
Muhtemelen üstbilgiler ve altbilgilerle ve muhtemelen her veri kaydı için belirli kontroller ve / veya biçimlendirmeyle birlikte verilerin bir listesini veya diğer biçimlendirilmiş görünümünü görüntülemeniz mi gerekiyor? (Örneğin, özelleştirilmiş bağlantılar, muhtemelen LinkButtons veya belirli düzenleme kontrolleri?) Bu, özellikle değil bir elektronik tablo veya tablo görünümünde içine doğal olarak uyacak? Liste görünümü
ListView'ın tüm kriterlerini karşılıyorsanız, ancak doğal olarak bir ızgaraya sığacaksanız, düşünebilirsiniz sığacaksanız DataList'i .
Sadece bazı özel tasarım bitleri ile yinelenen bazı temel verilere ihtiyaç duyduğumda, üstbilgi yok, altbilgi yok, güzel ve temiz bir şekilde Tekrarlayıcıya gidiyorum .
Aşağıdaki örnek kodun bildirilmesi tüm 3 (ListView, DataList, Repeater) için mümkündür
<asp:ListView runat="server" OnItemCommand="Unnamed1_ItemCommand">
<ItemTemplate> <%# Eval("Name")%> </ItemTemplate>
<asp:ListView>
Aşağıdaki listelerde her biri için mevcut şablonları ve seçenekleri görebilir ve farkları kendiniz görebilirsiniz.
ListView (düzenleme, grup, ekleme, yerleşim düzenine dikkat edin)
DataList (Stil çiftlerine dikkat edin)
tekrarlayıcı
CompositeDataBoundControl :
Aşağıdaki sınıf hiyerarşisine (ve ilgili kontrollere) bakın.
bu denetimler, kullanıcıya bağlı verileri görüntülemek için şablonlarında diğer asp.net denetimlerini barındırır

ListView Denetimi
ListView denetimi ayrıca verilerin görüntülenmesi için şablonlar kullanır. Bununla birlikte, verilerinizle çalışırken daha fazla senaryoya izin veren birçok ek şablonu destekler. Bu şablonlar, LayoutTemplate, GroupTemplate, ItemSeparatorTemplate içerir .
ListView denetimi ( DataList ve Repeater'ın aksine ), bir veri kaynağı denetimi kullanarak verileri düzenleme, ekleme ve silme yeteneğini de dolaylı olarak destekler. Bu senaryoların her biri için ayrı şablonlar tanımlayabilirsiniz.
DataList Denetimi
DataList kontrolü Repeater kontrolü gibi çalışır . Veri kümenizdeki her satır için verileri tekrarlar ve bu verileri tanımladığınız şablona göre görüntüler. Bununla birlikte , şablonda tanımlanan verileri çeşitli HTML yapıları içinde düzenler. Bu, yatay veya dikey düzen seçeneklerini içerir ve ayrıca verilerin akış veya tablo düzeni olarak nasıl tekrarlanacağını ayarlamanıza .
DataList denetimi, verileri düzenlemek için otomatik olarak bir veri kaynağı denetimi kullanmaz. Bunun yerine, bu senaryolar için kendi kodunuzu yazabileceğiniz komut olayları sağlar . Bu olayları etkinleştirmek için, şablonlardan birine bir Düğme denetimi eklersiniz ve düğmenin CommandName özelliğini edit, delete, update veya cancel anahtar sözcüğüne ayarlarsınız. Daha sonra uygun olay DataList denetimi tarafından oluşturulur.
Tekrarlayıcı Kontrolü
Yineleyici denetimi ayrıca özel bağlamayı tanımlamak için şablonlar kullanır. Ancak, verileri ayrı kayıtlar olarak göstermez. Bunun yerine, şablonunuzda belirttiğiniz gibi veri satırlarını tekrarlar. Bu, tek bir veri satırı oluşturmanıza ve sayfanızda tekrar etmenize olanak tanır.
Tekrarlayıcı kontrolü salt okunur bir şablondur. Yani, yalnızca ItemTemplate destekler. Düzenleme, ekleme ve silmeyi dolaylı olarak desteklemez. Bu işleve ihtiyacınız varsa diğer kontrollerden birini düşünmelisiniz, aksi takdirde bunu Tekrarlayıcı kontrolü için kendiniz kodlamanız gerekecektir .
Yukarıdaki Açıklamalar, Microsoft.NET Framework 4 ile MCTS Sınav 70-515 Web Uygulamaları Geliştirme kitabından alınmıştır.
DataGrid bu kitapta bahsedilmemiştir ve yerini popüler GridViews almıştır ve diğer kullanıcılar tarafından güzelce yanıtlanmıştır.
Aslında! ASP.NET 4.0 veri araçları arasındaki farklar hakkında blog yazdım . Temel olarak, kılavuz görünümler tablo şeklindeki bilgileri sunmanın en güçlü yoludur, oysa ListView kontrolleri tekrarlanan verilerin daha karmaşık görünümleri içindir. Bir ASP.NET acemisine tavsiye veriyor olsaydım, onlara kılavuz görüntülerini baştan sona öğrenmelerini ve başlamak için diğer kontrolleri görmezden gelmelerini söylerdim.
Her şey, verilerinizi nasıl düzenlemek istediğinize bağlı.
Yineleyici veya ListView kullanırken düzeni kontrol etmeniz gerekiyorsa (tablolara karşı CSS'ye karşı tablolar gibi). İkisi arasında ListView size düzenleme, seçme, ekleme için çok daha fazla olay ve yerleşik komutlar sunar. Ek olarak sayfalama ve gruplama işlevi. Tekrarlayıcı son derece basittir, verilerle bir düzeni tekrarlar. Düzeni elle oluşturduğunuz için, Listview ve Repeater daha fazla koda ihtiyaç duyar.
GridView güncellenmiş bir DataGrid olduğundan, DataGrid'i kullanmak için neredeyse hiçbir neden yoktur. GridView, standart ASP.NET veri kaynaklarına bağlandığında gerçekten iyi çalışır, ancak sizi çok sayıda düzen kuralı içeren bir tablo düzeniyle sınırlar. GridView, yerleşik bir düzen kullandığınız için daha az kod gerektirir.