Aracılığıyla paylaş


Veri Sınırı Denetimleri

Microsoft tarafından

çoğu ASP.NET uygulaması, arka uç veri kaynağından bir ölçüde veri sunumuna dayanır. Veriye bağlı denetimler, dinamik Web uygulamalarında verilerle etkileşim kurmanın önemli bir parçası olmuştur. ASP.NET 2.0, yeni bir BaseDataBoundControl sınıfı ve bildirim temelli söz dizimi dahil olmak üzere veriye bağlı denetimlerde bazı önemli iyileştirmeler sunar.

çoğu ASP.NET uygulaması, arka uç veri kaynağından bir ölçüde veri sunumuna dayanır. Veriye bağlı denetimler, dinamik Web uygulamalarında verilerle etkileşim kurmanın önemli bir parçası olmuştur. ASP.NET 2.0, yeni bir BaseDataBoundControl sınıfı ve bildirim temelli söz dizimi dahil olmak üzere veriye bağlı denetimlerde bazı önemli iyileştirmeler sunar.

BaseDataBoundControl, DataBoundControl sınıfı ve HierarchicalDataBoundControl sınıfı için temel sınıf görevi görür. Bu modülde DataBoundControl'den türetilen aşağıdaki sınıfları ele alacağız:

  • Adrotator
  • Liste denetimleri
  • GridView
  • Formview
  • Detailsview

Ayrıca HierarchicalDataBoundControl sınıfından türetilen aşağıdaki sınıfları da ele alacaktır:

  • TreeView
  • Menü
  • Sitemappath

DataBoundControl Sınıfı

DataBoundControl sınıfı, tablosal veya liste stili verilerle etkileşime geçmek için kullanılan bir soyut sınıftır (VB'de MustInherit olarak işaretlenir). Aşağıdaki denetimler DataBoundControl'den türetilen denetimlerden bazılarıdır.

Adrotator

AdRotator denetimi, web sayfasında belirli bir URL'ye bağlı bir grafik başlığı görüntülemenizi sağlar. Görüntülenen grafik, denetimin özellikleri kullanılarak döndürülür. Belirli bir reklamın sayfada görüntülenme sıklığı Gösterimler özelliği kullanılarak yapılandırılabilir ve reklamlar anahtar sözcük filtreleme kullanılarak filtrelenebilir.

AdRotator denetimleri, veriler için bir XML dosyası veya veritabanındaki bir tablo kullanır. AdRotator denetimini yapılandırmak için XML dosyalarında aşağıdaki öznitelikler kullanılır.

Imageurl

Reklam için görüntülenecek görüntünün URL'si.

Reklama tıklandığında kullanıcının alınması gereken URL. Bu URL kodlanmış olmalıdır.

Alternatetext

Araç ipucunda görüntülenen ve ekran okuyucular tarafından okunan alternatif metin. ImageUrl tarafından belirtilen görüntü kullanılamadığında da görüntülenir.

Anahtar sözcük

Anahtar sözcük filtreleme kullanılırken kullanılabilecek bir anahtar sözcük tanımlar. Belirtilirse yalnızca anahtar sözcük filtresiyle eşleşen anahtar sözcük içeren reklamlar görüntülenir.

İzlenimler

Belirli bir reklamın ne sıklıkta görüneceğini belirleyen bir ağırlık numarası. Aynı dosyadaki diğer reklamların izlenimine göredir. XML dosyasındaki tüm reklamlar için toplu gösterimlerin maksimum değeri 2.048.000.000 1'dir.

Height

Reklamın piksel cinsinden yüksekliği.

Width

Reklamın piksel cinsinden genişliği.

Not

Height ve Width öznitelikleri, AdRotator denetiminin kendisinin yüksekliğini ve genişliğini geçersiz kılar.

Tipik bir XML dosyası aşağıdaki gibi görünebilir:

<?xml version="1.0" encoding="utf-8" ?> <Advertisements xmlns="http://schemas.microsoft.com/AspNet/AdRotator-Schedule-File"> <Ad> <ImageUrl>~/images/Contoso_ad.gif</ImageUrl> <NavigateUrl>http://www.contoso-ltd.com</NavigateUrl> <AlternateText>Ad for Contoso, Ltd. Web site</AlternateText> <Impressions>100</Impressions> </Ad> <Ad> <ImageUrl>~/images/Aspnet_ad.gif</ImageUrl> <NavigateUrl>http://www.asp.net</NavigateUrl> <AlternateText>Ad for ASP.NET Web site</AlternateText> <Impressions>50</Impressions> </Ad> </Advertisements>

Yukarıdaki örnekte, Gösterimler özniteliğinin değeri nedeniyle Contoso reklamının ASP.NET Web sitesinin reklamı olarak görünme olasılığı iki kat daha yüksektir.

Yukarıdaki XML dosyasındaki reklamları görüntülemek için, sayfaya bir AdRotator denetimi ekleyin ve AdvertisementFile özelliğini aşağıda gösterildiği gibi XML dosyasını gösterecek şekilde ayarlayın:

<asp:AdRotator ID="AdRotator1" runat="server" AdvertisementFile="App_Data/Ads.xml" />

AdRotator denetiminizin veri kaynağı olarak bir veritabanı tablosu kullanmayı seçerseniz, önce aşağıdaki şemayı kullanarak bir veritabanı ayarlamanız gerekir:

Sütun adı Veri türü Açıklama
ID int Birincil anahtar. Bu sütunun herhangi bir adı olabilir.
Imageurl nvarchar(uzunluk) Reklam için görüntülenecek görüntünün göreli veya mutlak URL'si.
Navigateurl nvarchar(uzunluk) Reklamın hedef URL'si. Bir değer sağlamazsanız, reklam köprü değildir.
Alternatetext nvarchar(uzunluk) Resim bulunamazsa görüntülenen metin. Bazı tarayıcılarda metin Araç İpucu olarak görüntülenir. Grafiği göremeyen kullanıcıların açıklamasını yüksek sesle duyabilmesi için erişilebilirlik için alternatif metin de kullanılır.
Anahtar sözcük nvarchar(uzunluk) Sayfanın filtreleneceği reklam için bir kategori.
İzlenimler int(4) Reklamın görüntülenme sıklığını gösteren sayı. Sayı ne kadar büyük olursa reklam o kadar sık görüntülenir. XML dosyasındaki tüm gösterim değerlerinin toplamı 2.048.000.000 - 1'i aşamaz.
Width int(4) Resmin piksel cinsinden genişliği.
Height int(4) Görüntünün piksel cinsinden yüksekliği.

Zaten farklı bir şemaya sahip bir veritabanınızın olduğu durumlarda, AdRotator özniteliklerini mevcut veritabanınızla eşlemek için AlternateTextField, ImageUrlField ve NavigateUrlField özelliklerini kullanabilirsiniz. Veritabanındaki verileri AdRotator denetiminde görüntülemek için sayfaya bir veri kaynağı denetimi ekleyin, veri kaynağı denetiminin bağlantı dizesini veritabanınızı gösterecek şekilde yapılandırın ve AdRotator denetiminin DataSourceID özelliğini veri kaynağı denetiminin kimliğine ayarlayın. AdRotator reklamlarını program aracılığıyla yapılandırmanız gereken durumlarda AdCreated olayını kullanın. AdCreated olayı iki parametre alır; biri bir nesne, diğeri de AdCreatedEventArgs örneği. AdCreatedEventArgs, oluşturulan reklama bir başvurudur.

Aşağıdaki kod parçacığı bir admatically için ImageUrl, NavigateUrl ve AlternateText'i ayarlar:

protected void AdRotator1_AdCreated(object sender, System.Web.UI.WebControls.AdCreatedEventArgs e) { e.ImageUrl = "images/contoso_ad.gif"; e.NavigateUrl = "http://www.contoso-ltd.com/"; e.AlternateText = "Ad for Contoso, Ltd Web site"; }

Liste Denetimleri

Liste denetimleri ListBox, DropDownList, CheckBoxList, RadioButtonList ve BulletedList'i içerir. Bu denetimlerin her biri bir veri kaynağına bağlı veriler olabilir. Veri kaynağındaki bir alanı görüntüleme metni olarak kullanırlar ve isteğe bağlı olarak öğenin değeri olarak ikinci bir alan kullanabilirler. Öğeler tasarım zamanında statik olarak da eklenebilir ve statik öğeleri ve bir veri kaynağından eklenen dinamik öğeleri karıştırabilirsiniz.

Veriler liste denetimi bağlamak için sayfaya bir veri kaynağı denetimi ekleyin. Veri kaynağı denetimi için bir SELECT komutu belirtin ve ardından liste denetiminin DataSourceID özelliğini veri kaynağı denetiminin kimliğine ayarlayın. Denetimin görüntüleme metnini ve değerini tanımlamak için DataTextField ve DataValueField özelliklerini kullanın. Ayrıca, görüntü metninin görünümünü denetlemek için DataTextFormatString özelliğini aşağıdaki gibi kullanabilirsiniz:

Expression Açıklama
Fiyat: {0:C} Sayısal/ondalık veriler için. "Price:" değişmez değerini ve ardından para birimi biçimindeki sayıları görüntüler. Para birimi biçimi , Page yönergesindeki veya Web.config dosyasındaki culture özniteliğinde belirtilen kültür ayarına bağlıdır.
{0:D4} Tamsayı verileri için. Ondalık sayılarla kullanılamaz. Tamsayılar, dört karakter genişliğinde sıfır doldurulmuş bir alanda görüntülenir.
{0:N2}% Sayısal veriler için. 2 ondalık basamak duyarlığı ve ardından "%" değişmez değerini içeren sayıyı görüntüler.
{0:000.0} Sayısal/ondalık veriler için. Sayılar bir ondalık basam aya yuvarlanmaktadır. Üç basamaktan küçük sayılar sıfır dolgulu olur.
{0:D} Tarih/saat verileri için. Uzun tarih biçimini görüntüler ("Perşembe, 06 Ağustos 1996"). Tarih biçimi, sayfanın veya Web.config dosyasının kültür ayarına bağlıdır.
{0:d} Tarih/saat verileri için. Kısa tarih biçimini ("31.12.99") görüntüler.
{0:yy-AA-gg} Tarih/saat verileri için. Tarihi yıl-ay-gün biçiminde görüntüler (96-08-06)

GridView

GridView denetimi bildirim temelli bir yaklaşım kullanarak tablosal verilerin görüntülenmesini ve düzenlenmesini sağlar ve DataGrid denetiminin ardılıdır. GridView denetiminde aşağıdaki özellikler kullanılabilir.

  • SqlDataSource gibi veri kaynağı denetimlerine bağlama.
  • Yerleşik sıralama özellikleri.
  • Yerleşik güncelleştirme ve silme özellikleri.
  • Yerleşik disk belleği özellikleri.
  • Yerleşik satır seçimi özellikleri.
  • Özellikleri dinamik olarak ayarlamak, olayları işlemek vb. için GridView nesne modeline programlı erişim.
  • Birden çok anahtar alanı.
  • Köprü sütunları için birden çok veri alanı.
  • Temalar ve stiller aracılığıyla özelleştirilebilir görünüm.

Sütun Alanları

GridView denetimindeki her sütun bir DataControlField nesnesiyle temsil edilir. Varsayılan olarak, AutoGenerateColumns özelliği true olarak ayarlanır ve bu da veri kaynağındaki her alan için bir AutoGeneratedField nesnesi oluşturur. Her alan daha sonra GridView denetiminde her alanın veri kaynağında görünme sırasına göre bir sütun olarak işlenir. AutoGenerateColumns özelliğini false olarak ayarlayıp kendi sütun alanı koleksiyonunuzu tanımlayarak GridView denetiminde hangi sütun alanlarının görüneceğini el ile denetleyebilirsiniz. Farklı sütun alanı türleri, denetimdeki sütunların davranışını belirler.

Aşağıdaki tabloda kullanılabilecek farklı sütun alanı türleri listelenmiştir.

Sütun alanı türü Açıklama
Boundfield Veri kaynağındaki bir alanın değerini görüntüler. Bu, GridView denetiminin varsayılan sütun türüdür.
Buttonfield GridView denetimindeki her öğe için bir komut düğmesi görüntüler. Bu, Ekle veya Kaldır düğmesi gibi özel düğme denetimlerinden oluşan bir sütun oluşturmanıza olanak tanır.
Checkboxfield GridView denetimindeki her öğe için bir onay kutusu görüntüler. Bu sütun alanı türü genellikle Boole değeri olan alanları görüntülemek için kullanılır.
Commandfield Seçme, düzenleme veya silme işlemlerini gerçekleştirmek için önceden tanımlanmış komut düğmelerini görüntüler.
Hyperlinkfield Veri kaynağındaki bir alanın değerini köprü olarak görüntüler. Bu sütun alanı türü, köprü url'sine ikinci bir alan bağlamanızı sağlar.
Imagefield GridView denetimindeki her öğe için bir görüntü görüntüler.
Templatefield GridView denetimindeki her öğe için kullanıcı tanımlı içeriği belirtilen şablona göre görüntüler. Bu sütun alanı türü, özel bir sütun alanı oluşturmanıza olanak tanır.

Sütun alanı koleksiyonunu bildirimli olarak tanımlamak için, önce GridView denetiminin açma ve kapatma etiketleri arasına açma ve kapatma <Sütunları> etiketleri ekleyin. Ardından, sütun etiketlerini açma ve kapatma <> arasında eklemek istediğiniz sütun alanlarını listeleyin. Belirtilen sütunlar Sütunlar koleksiyonuna listelenen sırayla eklenir. Sütunlar koleksiyonu denetimdeki tüm sütun alanlarını depolar ve GridView denetimindeki sütun alanlarını program aracılığıyla yönetmenize olanak tanır.

Açıkça bildirilen sütun alanları, otomatik olarak oluşturulan sütun alanlarıyla birlikte görüntülenebilir. Her ikisi de kullanıldığında, açıkça bildirilen sütun alanları önce işlenir, ardından otomatik olarak oluşturulan sütun alanları gelir.

Veri Kaynağı Denetimine Bağlama

GridView denetimi bir veri kaynağı denetimine ( SqlDataSource, ObjectDataSource vb.) ve System.Collections.IEnumerable arabirimini uygulayan herhangi bir veri kaynağına (System.Data.DataView, System.Collections.ArrayList veya System.Collections.Hashtable gibi) bağlanabilir. GridView denetimini uygun veri kaynağı türüne bağlamak için aşağıdaki yöntemlerden birini kullanın:

  • Bir veri kaynağı denetimine bağlanmak için GridView denetiminin DataSourceID özelliğini veri kaynağı denetiminin kimlik değerine ayarlayın. GridView denetimi otomatik olarak belirtilen veri kaynağı denetimine bağlanır ve veri kaynağı denetiminin sıralama, güncelleştirme, silme ve sayfalama işlevlerini gerçekleştirme özelliklerinden yararlanabilir. Bu, verilere bağlanmak için tercih edilen yöntemdir.
  • System.Collections.IEnumerable arabirimini uygulayan bir veri kaynağına bağlanmak için GridView denetiminin DataSource özelliğini program aracılığıyla veri kaynağına ayarlayın ve dataBind yöntemini çağırın. Bu yöntemi kullanırken GridView denetimi yerleşik sıralama, güncelleştirme, silme ve sayfalama işlevleri sağlamaz. Bu işlevi kendiniz sağlamanız gerekir.

GridView Denetim İşlemleri

GridView denetimi, kullanıcının denetimdeki öğeleri sıralamasına, güncelleştirmesine, silmesine, seçmesine ve sayfalandırmasına olanak sağlayan birçok yerleşik özellik sağlar. GridView denetimi bir veri kaynağı denetimine bağlı olduğunda GridView denetimi, veri kaynağı denetiminin özelliklerinden yararlanabilir ve otomatik sıralama, güncelleştirme ve silme işlevleri sağlayabilir.

Not

GridView denetimi, diğer veri kaynağı türleriyle sıralama, güncelleştirme ve silme desteği sağlayabilir; ancak, bu işlemler için uygulama ile uygun bir olay işleyicisi sağlamanız gerekir.

Sıralama, kullanıcının GridView denetimindeki öğeleri, sütunun üst bilgisine tıklayarak belirli bir sütuna göre sıralamasını sağlar. Sıralamayı etkinleştirmek için AllowSorting özelliğini true olarak ayarlayın.

ButtonField veya TemplateField sütun alanında sırasıyla "Düzenle", "Sil" ve "Seç" komut adıyla bir düğmeye tıklandığında otomatik güncelleştirme, silme ve seçim işlevleri etkinleştirilir. AutoGenerateEditButton, AutoGenerateDeleteButton veya AutoGenerateSelectButton özelliği sırasıyla true olarak ayarlandıysa, GridView denetimi otomatik olarak Düzenle, Sil veya Seç düğmesi olan bir CommandField sütun alanı ekleyebilir.

Not

Kayıtların veri kaynağına eklenmesi GridView denetimi tarafından doğrudan desteklenmez. Ancak, DetailsView veya FormView denetimiyle birlikte GridView denetimini kullanarak kayıt eklemek mümkündür.

GridView denetimi, veri kaynağındaki tüm kayıtları aynı anda görüntülemek yerine kayıtları otomatik olarak sayfalara bölebilir. Disk belleğini etkinleştirmek için AllowPaging özelliğini true olarak ayarlayın.

GridView Görünümünü Özelleştirme

Denetimin farklı bölümleri için stil özelliklerini ayarlayarak GridView denetiminin görünümünü özelleştirebilirsiniz. Aşağıdaki tabloda farklı stil özellikleri listeılmıştır.

Style özelliği Açıklama
AlternatingRowStyle GridView denetimindeki değişen veri satırları için stil ayarları. Bu özellik ayarlandığında, Satır Stili ayarları ile AlternatingRowStyle ayarları arasında değişen veri satırları görüntülenir.
EditRowStyle GridView denetiminde düzenlenen satırın stil ayarları.
Emptydatarowstyle Veri kaynağı herhangi bir kayıt içermediğinde GridView denetiminde görüntülenen boş veri satırının stil ayarları.
Footerstyle GridView denetiminin alt bilgi satırı için stil ayarları.
Headerstyle GridView denetiminin üst bilgi satırı için stil ayarları.
Pagerstyle GridView denetiminin disk belleği satırı için stil ayarları.
Rowstyle GridView denetimindeki veri satırları için stil ayarları. AlternatingRowStyle özelliği de ayarlandığında, veri satırları RowStyle ayarlarıyla AlternatingRowStyle ayarları arasında değişen şekilde görüntülenir.
SelectedRowStyle GridView denetiminde seçili satırın stil ayarları.

Denetimin farklı bölümlerini de gösterebilir veya gizleyebilirsiniz. Aşağıdaki tabloda, hangi bölümlerin gösterileceğini veya gizlendiğini denetleyen özellikler listelenir.

Özellik Açıklama
Showfooter GridView denetiminin alt bilgi bölümünü gösterir veya gizler.
Showheader GridView denetiminin üst bilgi bölümünü gösterir veya gizler.

Ekinlikler

GridView denetimi, üzerinde programlama yapabileceğiniz çeşitli olaylar sağlar. Bu, bir olay gerçekleştiğinde özel bir yordam çalıştırmanıza olanak tanır. Aşağıdaki tabloda GridView denetimi tarafından desteklenen olaylar listelenmektedir.

Olay Açıklama
Pageındexchanged Çağrı cihaz düğmelerinden birine tıklandığında, ancak GridView denetimi disk belleği işlemini işledikten sonra gerçekleşir. Bu olay genellikle kullanıcı denetimde farklı bir sayfaya gittikten sonra bir görev gerçekleştirmeniz gerektiğinde kullanılır.
Pageındexchanging Çağrı cihaz düğmelerinden birine tıklandığında, ancak GridView denetimi disk belleği işlemini işlemeden önce gerçekleşir. Bu olay genellikle disk belleği işlemini iptal etmek için kullanılır.
RowCancelingEdit Bir satırın İptal düğmesine tıklandığında, ancak GridView denetimi düzenleme modundan çıkmadan önce gerçekleşir. Bu olay genellikle iptal işlemini durdurmak için kullanılır.
Rowcommand GridView denetiminde bir düğmeye tıklandığında gerçekleşir. Bu olay genellikle denetimde bir düğmeye tıklandığında bir görevi gerçekleştirmek için kullanılır.
Rowcreated GridView denetiminde yeni bir satır oluşturulduğunda gerçekleşir. Bu olay genellikle satır oluşturulduğunda satırın içeriğini değiştirmek için kullanılır.
RowDataBound GridView denetimindeki verilere bağlı bir veri satırı olduğunda gerçekleşir. Bu olay genellikle satır verilere bağlı olduğunda satırın içeriğini değiştirmek için kullanılır.
Rowdeleted Satırın Sil düğmesine tıklandığında, ancak GridView denetimi kaydı veri kaynağından sildikten sonra gerçekleşir. Bu olay genellikle silme işleminin sonuçlarını denetlemek için kullanılır.
Rowdeleting Bir satırın Sil düğmesine tıklandığında, ancak GridView denetimi kaydı veri kaynağından silmeden önce gerçekleşir. Bu olay genellikle silme işlemini iptal etmek için kullanılır.
Rowediting Bir satırın Düzenle düğmesine tıklandığında, ancak GridView denetimi düzenleme moduna girmeden önce gerçekleşir. Bu olay genellikle düzenleme işlemini iptal etmek için kullanılır.
Rowupdated Satırın Güncelleştir düğmesine tıklandığında, ancak GridView denetimi satırı güncelleştirdikten sonra gerçekleşir. Bu olay genellikle güncelleştirme işleminin sonuçlarını denetlemek için kullanılır.
Rowupdating Satırın Güncelleştir düğmesine tıklandığında ancak GridView denetimi satırı güncelleştirmeden önce gerçekleşir. Bu olay genellikle güncelleştirme işlemini iptal etmek için kullanılır.
Selectedındexchanged Bir satırın Seç düğmesine tıklandığında, ancak GridView denetimi seçme işlemini işledikten sonra gerçekleşir. Bu olay genellikle denetimde bir satır seçildikten sonra bir görevi gerçekleştirmek için kullanılır.
Selectedındexchanging Bir satırın Seç düğmesine tıklandığında, ancak GridView denetimi seçme işlemini işlemeden önce gerçekleşir. Bu olay genellikle seçim işlemini iptal etmek için kullanılır.
Sorted Bir sütunu sıralamak için köprüye tıklandığında, ancak GridView denetimi sıralama işlemini işledikten sonra gerçekleşir. Bu olay, kullanıcı bir sütunu sıralamak için köprüye tıkladıktan sonra bir görevi gerçekleştirmek için yaygın olarak kullanılır.
Sıralama Bir sütunu sıralamak için köprüye tıklandığında, ancak GridView denetimi sıralama işlemini işlemeden önce gerçekleşir. Bu olay genellikle sıralama işlemini iptal etmek veya özel bir sıralama yordamı gerçekleştirmek için kullanılır.

Formview

FormView denetimi, bir veri kaynağından tek bir kaydı görüntülemek için kullanılır. DetailsView denetimine benzer, ancak satır alanları yerine kullanıcı tanımlı şablonlar görüntüler. Kendi şablonlarınızı oluşturmak, verilerin nasıl görüntüleneceğini denetleme konusunda size daha fazla esneklik sağlar. FormView denetimi aşağıdaki özellikleri destekler:

  • SqlDataSource ve ObjectDataSource gibi veri kaynağı denetimlerine bağlama.
  • Yerleşik ekleme özellikleri.
  • Yerleşik güncelleştirme ve silme özellikleri.
  • Yerleşik disk belleği özellikleri.
  • Özellikleri dinamik olarak ayarlamak, olayları işlemek vb. için FormView nesne modeline programlı erişim.
  • Kullanıcı tanımlı şablonlar, temalar ve stiller aracılığıyla özelleştirilebilir görünüm.

Şablonlar

FormView denetiminin içeriği görüntülemesi için denetimin farklı bölümleri için şablonlar oluşturmanız gerekir. Çoğu şablon isteğe bağlıdır; ancak, denetimin yapılandırıldığı mod için bir şablon oluşturmanız gerekir. Örneğin, kayıt eklemeyi destekleyen bir FormView denetiminin tanımlı bir ekleme öğesi şablonu olmalıdır. Aşağıdaki tabloda, oluşturabileceğiniz farklı şablonlar listelenir.

Şablon türü Açıklama
Editıtemtemplate FormView denetimi düzenleme modundayken veri satırının içeriğini tanımlar. Bu şablon genellikle kullanıcının mevcut bir kaydı düzenleyebileceği giriş denetimleri ve komut düğmeleri içerir.
Emptydatatemplate FormView denetimi kayıt içermeyen bir veri kaynağına bağlı olduğunda görüntülenen boş veri satırının içeriğini tanımlar. Bu şablon genellikle kullanıcıyı veri kaynağının herhangi bir kayıt içermediği konusunda uyarmak için içerik içerir.
Footertemplate Alt bilgi satırının içeriğini tanımlar. Bu şablon genellikle alt bilgi satırında görüntülemek istediğiniz ek içerikleri içerir. Alternatif olarak, AltbilgiMetni özelliğini ayarlayarak alt bilgi satırında görüntülenecek metni belirtebilirsiniz.
Headertemplate Üst bilgi satırının içeriğini tanımlar. Bu şablon genellikle üst bilgi satırında görüntülemek istediğiniz ek içerikleri içerir. Alternatif olarak, HeaderText özelliğini ayarlayarak üst bilgi satırında görüntülenecek metni belirtebilirsiniz.
Itemtemplate FormView denetimi salt okunur moddayken veri satırının içeriğini tanımlar. Bu şablon genellikle var olan bir kaydın değerlerini görüntülemek için içerik içerir.
Insertıtemtemplate FormView denetimi ekleme modundayken veri satırının içeriğini tanımlar. Bu şablon genellikle kullanıcının yeni kayıt ekleyebileceği giriş denetimleri ve komut düğmeleri içerir.
Pagertemplate Disk belleği özelliği etkinleştirildiğinde görüntülenen disk belleği satırı içeriğini tanımlar (AllowPaging özelliği true olarak ayarlandığında). Bu şablon genellikle kullanıcının başka bir kayda gidebileceği denetimleri içerir.

Öğeyi düzenleme ve öğe ekleme şablonundaki giriş denetimleri, iki yönlü bağlama ifadesi kullanılarak veri kaynağının alanlarına bağlanabilir. Bu, FormView denetiminin bir güncelleştirme veya ekleme işlemi için giriş denetiminin değerlerini otomatik olarak ayıklamasını sağlar. İki yönlü bağlama ifadeleri, düzenleme öğesi şablonundaki giriş denetimlerinin özgün alan değerlerini otomatik olarak görüntülemesine de olanak sağlar.

Verilere Bağlama

FormView denetimi bir veri kaynağı denetimine ( SqlDataSource, AccessDataSource, ObjectDataSource vb.) veya System.Collections.IEnumerable arabirimini (System.Data.DataView, System.Collections.ArrayList ve System.Collections.Hashtable gibi) uygulayan herhangi bir veri kaynağına bağlanabilir. FormView denetimini uygun veri kaynağı türüne bağlamak için aşağıdaki yöntemlerden birini kullanın:

  • Bir veri kaynağı denetimine bağlanmak için, FormView denetiminin DataSourceID özelliğini veri kaynağı denetiminin kimlik değerine ayarlayın. FormView denetimi otomatik olarak belirtilen veri kaynağı denetimine bağlanır ve ekleme, güncelleştirme, silme ve sayfalama işlevlerini gerçekleştirmeye yönelik veri kaynağı denetiminin özelliklerinden yararlanabilir. Bu, verilere bağlanmak için tercih edilen yöntemdir.
  • System.Collections.IEnumerable arabirimini uygulayan bir veri kaynağına bağlanmak için, FormView denetiminin DataSource özelliğini program aracılığıyla veri kaynağına ayarlayın ve dataBind yöntemini çağırın. Bu yöntemi kullanırken, FormView denetimi yerleşik ekleme, güncelleştirme, silme ve sayfalama işlevselliği sağlamaz. Uygun olayı kullanarak bu işlevi sağlamanız gerekir.

FormView Denetim İşlemleri

FormView denetimi, kullanıcının denetimdeki öğeleri güncelleştirmesine, silmesine, eklemesine ve sayfalandırmasına olanak sağlayan birçok yerleşik özellik sağlar. FormView denetimi bir veri kaynağı denetimine bağlı olduğunda, FormView denetimi veri kaynağı denetiminin özelliklerinden yararlanabilir ve otomatik güncelleştirme, silme, ekleme ve sayfalama işlevleri sağlayabilir. FormView denetimi diğer veri kaynağı türleriyle güncelleştirme, silme, ekleme ve sayfalama işlemleri için destek sağlayabilir; ancak, bu işlemler için uygulama ile uygun bir olay işleyicisi sağlamanız gerekir.

FormView denetimi şablonları kullandığından, güncelleştirme, silme veya ekleme işlemlerini gerçekleştirmek için otomatik olarak komut düğmeleri oluşturmanın bir yolunu sağlamaz. Bu komut düğmelerini uygun şablona el ile eklemeniz gerekir. FormView denetimi , CommandName özellikleri belirli değerlere ayarlanmış bazı düğmeleri tanır. Aşağıdaki tabloda, FormView denetiminin tanıdığı komut düğmeleri listelenir.

Düğme Commandname değeri Açıklama
İptal "İptal" İşlemi iptal etmek ve kullanıcı tarafından girilen değerleri atmak için güncelleştirme veya ekleme işlemlerinde kullanılır. FormView denetimi daha sonra DefaultMode özelliği tarafından belirtilen moda döner.
Sil "Sil" Görüntülenen kaydı veri kaynağından silmek için silme işlemlerinde kullanılır. ItemDeleting ve ItemDeleted olaylarını oluşturur.
Düzenle "Düzenle" FormView denetimini düzenleme moduna almak için güncelleştirme işlemlerinde kullanılır. EditItemTemplate özelliğinde belirtilen içerik, veri satırı için görüntülenir.
Ekle "Ekle" Kullanıcı tarafından sağlanan değerleri kullanarak veri kaynağına yeni bir kayıt eklemeye çalışmak için ekleme işlemlerinde kullanılır. ItemInserting ve ItemInserted olaylarını oluşturur.
Yeni "Yeni" FormView denetimini ekleme moduna almak için ekleme işlemlerinde kullanılır. InsertItemTemplate özelliğinde belirtilen içerik, veri satırı için görüntülenir.
Sayfa "Sayfa" Sayfalama işlemlerinde disk belleği gerçekleştiren çağrı aracı satırındaki bir düğmeyi temsil etmek için kullanılır. Disk belleği işlemini belirtmek için düğmenin CommandArgument özelliğini "İleri", "Önceki", "İlk", "Son" veya gezineceğiniz sayfanın dizini olarak ayarlayın. PageIndexChanging ve PageIndexChanged olaylarını oluşturur.
Güncelleştir "Güncelleştir" Veri kaynağında görüntülenen kaydı kullanıcı tarafından sağlanan değerlerle güncelleştirmeye çalışmak için güncelleştirme işlemlerinde kullanılır. ItemUpdating ve ItemUpdated olaylarını oluşturur.

Sil düğmesinin aksine (görüntülenen kaydı hemen siler), Düzenle veya Yeni düğmesine tıklandığında FormView denetimi sırasıyla düzenleme veya ekleme moduna geçer. Düzenleme modunda, Geçerli veri öğesi için EditItemTemplate özelliğinde yer alan içerik görüntülenir. Genellikle düzenleme öğesi şablonu, Düzenle düğmesinin bir Güncelleştirme ve İptal düğmesiyle değiştirilerek tanımlanır. Alanın veri türüne (TextBox veya CheckBox denetimi gibi) uygun giriş denetimleri de genellikle kullanıcının değiştirmesi için alanın değeriyle birlikte görüntülenir. Güncelleştir düğmesine tıklanması veri kaynağındaki kaydı güncelleştirirken İptal düğmesine tıklanması değişiklikleri bırakır.

Benzer şekilde, denetim ekleme modundayken veri öğesi için InsertItemTemplate özelliğinde bulunan içerik görüntülenir. Öğe ekle şablonu genellikle Yeni düğmesinin Ekle ve İptal düğmesiyle değiştirilip kullanıcının yeni kaydın değerlerini girmesi için boş giriş denetimleri görüntülenecek şekilde tanımlanır. Ekle düğmesine tıklanması kaydı veri kaynağına eklerken İptal düğmesine tıklanması değişiklikleri bırakır.

FormView denetimi, kullanıcının veri kaynağındaki diğer kayıtlara gitmesine olanak tanıyan bir disk belleği özelliği sağlar. Etkinleştirildiğinde, sayfa gezinti denetimlerini içeren FormView denetiminde bir disk belleği satırı görüntülenir. Sayfalama özelliğini etkinleştirmek için AllowPaging özelliğini true olarak ayarlayın. PagerStyle ve PagerSettings özelliğinde bulunan nesnelerin özelliklerini ayarlayarak çağrı cihazı satırını özelleştirebilirsiniz. Yerleşik disk belleği satırı kullanıcı arabirimini kullanmak yerine PagerTemplate özelliğini kullanarak kendi kullanıcı arabiriminizi oluşturabilirsiniz.

FormView Görünümünü Özelleştirme

Denetimin farklı bölümleri için stil özelliklerini ayarlayarak FormView denetiminin görünümünü özelleştirebilirsiniz. Aşağıdaki tabloda farklı stil özellikleri listeılmıştır.

Style özelliği Açıklama
EditRowStyle FormView denetimi düzenleme modundayken veri satırının stil ayarları.
Emptydatarowstyle Veri kaynağı herhangi bir kayıt içermediğinde FormView denetiminde görüntülenen boş veri satırının stil ayarları.
Footerstyle FormView denetiminin alt bilgi satırı için stil ayarları.
Headerstyle FormView denetiminin üst bilgi satırı için stil ayarları.
InsertRowStyle FormView denetimi ekleme modundayken veri satırının stil ayarları.
Pagerstyle Disk belleği özelliği etkinleştirildiğinde FormView denetiminde görüntülenen disk belleği satırı için stil ayarları.
Rowstyle FormView denetimi salt okunur moddayken veri satırının stil ayarları.

FormView Olayları

FormView denetimi, üzerinde programlama yapabileceğiniz çeşitli olaylar sağlar. Bu, bir olay gerçekleştiğinde özel bir yordam çalıştırmanıza olanak tanır. Aşağıdaki tabloda FormView denetimi tarafından desteklenen olaylar listelenmektedir.

Olay Açıklama
Itemcommand FormView denetimindeki bir düğmeye tıklandığında gerçekleşir. Bu olay genellikle denetimde bir düğmeye tıklandığında bir görevi gerçekleştirmek için kullanılır.
Itemcreated FormView denetiminde tüm FormViewRow nesneleri oluşturulduktan sonra gerçekleşir. Bu olay genellikle bir kaydın değerlerini görüntülenmeden önce değiştirmek için kullanılır.
Itemdeleted Delete düğmesine ( CommandName özelliği "Delete" olarak ayarlanmış bir düğme) tıklandığında, ancak FormView denetimi kaydı veri kaynağından sildikten sonra gerçekleşir. Bu olay genellikle silme işleminin sonuçlarını denetlemek için kullanılır.
Itemdeleting Sil düğmesine tıklandığında, ancak FormView denetimi kaydı veri kaynağından silmeden önce gerçekleşir. Bu olay genellikle silme işlemini iptal etmek için kullanılır.
Itemınserted Ekle düğmesine ( CommandName özelliği "Ekle" olarak ayarlanmış bir düğme) tıklandığında, ancak FormView denetimi kaydı ekledikten sonra gerçekleşir. Bu olay genellikle ekleme işleminin sonuçlarını denetlemek için kullanılır.
Itemınserting Ekle düğmesine tıklandığında, ancak FormView denetimi kaydı eklemeden önce gerçekleşir. Bu olay genellikle ekleme işlemini iptal etmek için kullanılır.
Itemupdated Bir Güncelleştir düğmesine ( CommandName özelliği "Güncelleştir" olarak ayarlanmış bir düğme) tıklandığında, ancak FormView denetimi satırı güncelleştirdikten sonra gerçekleşir. Bu olay genellikle güncelleştirme işleminin sonuçlarını denetlemek için kullanılır.
Itemupdating Güncelleştir düğmesine tıklandığında, ancak FormView denetimi kaydı güncelleştirmeden önce gerçekleşir. Bu olay genellikle güncelleştirme işlemini iptal etmek için kullanılır.
Modechanged FormView denetimi modları değiştirdikten (düzenleme, ekleme veya salt okunur mod) sonra gerçekleşir. Bu olay genellikle FormView denetimi modları değiştirdiğinde bir görevi gerçekleştirmek için kullanılır.
Modechanging FormView denetimi modları değiştirmeden önce gerçekleşir (düzenlemek, eklemek veya salt okunur mod için). Bu olay genellikle mod değişikliğini iptal etmek için kullanılır.
Pageındexchanged Disk belleği düğmelerinden birine tıklandığında, ancak FormView denetimi disk belleği işlemini işledikten sonra gerçekleşir. Bu olay genellikle kullanıcı denetimdeki farklı bir kayda gittikten sonra bir görev gerçekleştirmeniz gerektiğinde kullanılır.
Pageındexchanging Disk belleği düğmelerinden birine tıklandığında, ancak FormView denetimi disk belleği işlemini işlemeden önce gerçekleşir. Bu olay genellikle disk belleği işlemini iptal etmek için kullanılır.

Detailsview

DetailsView denetimi, bir tablodaki veri kaynağından tek bir kaydı görüntülemek için kullanılır ve burada kaydın her alanı tablonun bir satırında görüntülenir. Ana ayrıntı senaryoları için GridView denetimiyle birlikte kullanılabilir. DetailsView denetimi aşağıdaki özellikleri destekler:

  • SqlDataSource gibi veri kaynağı denetimlerine bağlama.
  • Yerleşik ekleme özellikleri.
  • Yerleşik güncelleştirme ve silme özellikleri.
  • Yerleşik disk belleği özellikleri.
  • Özellikleri dinamik olarak ayarlamak, olayları işlemek vb. için DetailsView nesne modeline programlı erişim.
  • Temalar ve stiller aracılığıyla özelleştirilebilir görünüm.

Satır Alanları

DetailsView denetimindeki her veri satırı, bir alan denetimi bildirilerek oluşturulur. Denetimdeki satırların davranışını farklı satır alanı türleri belirler. Alan denetimleri DataControlField'dan türetilir. Aşağıdaki tabloda kullanılabilecek farklı satır alanı türleri listelenmiştir.

Sütun alanı türü Açıklama
Boundfield Veri kaynağındaki bir alanın değerini metin olarak görüntüler.
Buttonfield DetailsView denetiminde bir komut düğmesi görüntüler. Bu, Ekle veya Kaldır düğmesi gibi özel düğme denetimine sahip bir satır görüntülemenizi sağlar.
Checkboxfield DetailsView denetiminde bir onay kutusu görüntüler. Bu satır alanı türü genellikle Boole değeri olan alanları görüntülemek için kullanılır.
Commandfield DetailsView denetiminde düzenleme, ekleme veya silme işlemlerini gerçekleştirmek için yerleşik komut düğmelerini görüntüler.
Hyperlinkfield Veri kaynağındaki bir alanın değerini köprü olarak görüntüler. Bu satır alanı türü, köprü url'sine ikinci bir alan bağlamanızı sağlar.
Imagefield DetailsView denetiminde bir görüntü görüntüler.
Templatefield Belirtilen şablona göre DetailsView denetimindeki bir satır için kullanıcı tanımlı içeriği görüntüler. Bu satır alanı türü, özel bir satır alanı oluşturmanıza olanak tanır.

Varsayılan olarak, AutoGenerateRows özelliği true olarak ayarlanır ve bu da veri kaynağındaki bağlanabilir bir türün her alanı için otomatik olarak bir ilişkili satır alanı nesnesi oluşturur. Geçerli bağlanabilir türler String, DateTime, Decimal, Guid ve ilkel türler kümesidir. Her alan daha sonra bir satırda metin olarak, her alanın veri kaynağında görüntülenme sırasına göre görüntülenir.

Satırları otomatik olarak oluşturmak, kayıttaki her alanı görüntülemek için hızlı ve kolay bir yol sağlar. Ancak, DetailsView denetiminin gelişmiş özelliklerinden yararlanmak için DetailsView denetimine eklenecek satır alanlarını açıkça bildirmeniz gerekir. Satır alanlarını bildirmek için önce AutoGenerateRows özelliğini false olarak ayarlayın. Ardından, DetailsView denetiminin açma ve kapatma etiketleri arasına Açma ve kapatma <Alanları> etiketlerini ekleyin. Son olarak, Alanlar etiketlerini açma ve kapatma <arasında eklemek istediğiniz satır alanlarını listeleyin> . Belirtilen satır alanları, Listelenen sırayla Alanlar koleksiyonuna eklenir. Alanlar koleksiyonu, DetailsView denetimindeki satır alanlarını program aracılığıyla yönetmenize olanak tanır.

Not

Otomatik olarak oluşturulan satır alanları Alanlar koleksiyonuna eklenmez.

DetailsView ile Verilere Bağlama

DetailsView denetimi SqlDataSource veya AccessDataSource gibi bir veri kaynağı denetimine ya da System.Data.DataView, System.Collections.ArrayList ve System.Collections.Hashtable gibi System.Collections.IEnumerable arabirimini uygulayan herhangi bir veri kaynağına bağlanabilir.

DetailsView denetimini uygun veri kaynağı türüne bağlamak için aşağıdaki yöntemlerden birini kullanın:

  • Bir veri kaynağı denetimine bağlanmak için DetailsView denetiminin DataSourceID özelliğini veri kaynağı denetiminin kimlik değerine ayarlayın. DetailsView denetimi, belirtilen veri kaynağı denetimine otomatik olarak bağlanır. Bu, verilere bağlanmak için tercih edilen yöntemdir.
  • System.Collections.IEnumerable arabirimini uygulayan bir veri kaynağına bağlanmak için, DetailsView denetiminin DataSource özelliğini program aracılığıyla veri kaynağına ayarlayın ve dataBind yöntemini çağırın.

Güvenlik

Bu denetim, kötü amaçlı istemci betiği içerebilecek kullanıcı girişini görüntülemek için kullanılabilir. Uygulamanızda görüntülemeden önce bir istemciden yürütülebilir betik, SQL deyimleri veya başka bir kod için gönderilen tüm bilgileri denetleyin. ASP.NET, kullanıcı girişinde betiği ve HTML'yi engellemek için bir giriş isteği doğrulama özelliği sağlar.

DetailsView'da Veri İşlemleri

DetailsView denetimi, kullanıcının denetimdeki öğeleri güncelleştirmesine, silmesine, eklemesine ve sayfalandırmasına olanak sağlayan yerleşik özellikler sağlar. DetailsView denetimi bir veri kaynağı denetimine bağlı olduğunda, DetailsView denetimi veri kaynağı denetiminin özelliklerinden yararlanabilir ve otomatik güncelleştirme, silme, ekleme ve sayfalama işlevleri sağlayabilir.

DetailsView denetimi diğer veri kaynağı türleriyle güncelleştirme, silme, ekleme ve sayfalama işlemleri için destek sağlayabilir; ancak, bu işlemler için uygulamayı uygun bir olay işleyicisinde sağlamanız gerekir.

DetailsView denetimi, Sırasıyla AutoGenerateEditButton, AutoGenerateDeleteButton veya AutoGenerateInsertButton özelliklerini true olarak ayarlayarak, Düzenle, Sil veya Yeni düğmesi olan bir CommandField satır alanını otomatik olarak ekleyebilir. Sil düğmesinin aksine (seçili kaydı hemen siler), Düzenle veya Yeni düğmesine tıklandığında DetailsView denetimi sırasıyla düzenleme veya ekleme moduna geçer. Düzenleme modunda, Düzenle düğmesi bir Güncelleştir ve İptal düğmesiyle değiştirilir. Alanın veri türüne (TextBox veya CheckBox denetimi gibi) uygun giriş denetimleri, kullanıcının değiştirmesi için alanın değeriyle birlikte görüntülenir. Güncelleştir düğmesine tıklanması veri kaynağındaki kaydı güncelleştirirken İptal düğmesine tıklanması değişiklikleri bırakır. Benzer şekilde, ekleme modunda Yeni düğmesi Ekle ve İptal düğmesiyle değiştirilir ve kullanıcının yeni kaydın değerlerini girmesi için boş giriş denetimleri görüntülenir.

DetailsView denetimi, kullanıcının veri kaynağındaki diğer kayıtlara gitmesine olanak tanıyan bir disk belleği özelliği sağlar. Etkinleştirildiğinde, sayfa gezinti denetimleri bir sayfa oluşturucu satırında görüntülenir. Sayfalama özelliğini etkinleştirmek için AllowPaging özelliğini true olarak ayarlayın. Pager satırı PagerStyle ve PagerSettings özellikleri kullanılarak özelleştirilebilir.

DetailsView Görünümünü Özelleştirme

Denetimin farklı bölümleri için stil özelliklerini ayarlayarak DetailsView denetiminin görünümünü özelleştirebilirsiniz. Aşağıdaki tabloda farklı stil özellikleri listeılmıştır.

Style özelliği Açıklama
AlternatingRowStyle DetailsView denetimindeki değişen veri satırları için stil ayarları. Bu özellik ayarlandığında, veri satırları RowStyle ayarları ve AlternatingRowStyle ayarları arasında değişen olarak görüntülenir.
CommandRowStyle DetailsView denetimindeki yerleşik komut düğmelerini içeren satırın stil ayarları.
EditRowStyle DetailsView denetimi düzenleme modundayken veri satırları için stil ayarları.
Emptydatarowstyle Veri kaynağı herhangi bir kayıt içermediğinde DetailsView denetiminde görüntülenen boş veri satırının stil ayarları.
Footerstyle DetailsView denetiminin alt bilgi satırının stil ayarları.
Headerstyle DetailsView denetiminin üst bilgi satırı için stil ayarları.
InsertRowStyle DetailsView denetimi ekleme modundayken veri satırları için stil ayarları.
Pagerstyle DetailsView denetiminin disk belleği satırı için stil ayarları.
Rowstyle DetailsView denetimindeki veri satırları için stil ayarları. AlternatingRowStyle özelliği de ayarlandığında, veri satırları RowStyle ayarlarıyla AlternatingRowStyle ayarları arasında değişen olarak görüntülenir.
FieldHeaderStyle DetailsView denetiminin üst bilgi sütunu için stil ayarları.

DetailsView'daki Olaylar

DetailsView denetimi, programlayabileceğiniz çeşitli olaylar sağlar. Bu, bir olay gerçekleştiğinde özel bir yordam çalıştırmanızı sağlar. Aşağıdaki tabloda DetailsView denetimi tarafından desteklenen olaylar listelenmektedir. DetailsView denetimi de bu olayları temel sınıflarından devralır: DataBinding, DataBound, Disposed, Init, Load, PreRender ve Render.

Olay Açıklama
Itemcommand DetailsView denetiminde bir düğmeye tıklandığında gerçekleşir.
Itemcreated DetailsView denetiminde tüm DetailsViewRow nesneleri oluşturulduktan sonra gerçekleşir. Bu olay genellikle bir kaydın değerlerini görüntülenmeden önce değiştirmek için kullanılır.
Itemdeleted Sil düğmesine tıklandığında, ancak DetailsView denetimi kaydı veri kaynağından sildikten sonra gerçekleşir. Bu olay genellikle silme işleminin sonuçlarını denetlemek için kullanılır.
Itemdeleting Delete düğmesine tıklandığında, ancak DetailsView denetimi kaydı veri kaynağından silmeden önce gerçekleşir. Bu olay genellikle silme işlemini iptal etmek için kullanılır.
Itemınserted Ekle düğmesine tıklandığında, ancak DetailsView denetimi kaydı ekledikten sonra gerçekleşir. Bu olay genellikle ekleme işleminin sonuçlarını denetlemek için kullanılır.
Itemınserting Ekle düğmesine tıklandığında, ancak DetailsView denetimi kaydı eklemeden önce gerçekleşir. Bu olay genellikle ekleme işlemini iptal etmek için kullanılır.
Itemupdated Güncelleştir düğmesine tıklandığında, ancak DetailsView denetimi satırı güncelleştirdikten sonra gerçekleşir. Bu olay genellikle güncelleştirme işleminin sonuçlarını denetlemek için kullanılır.
Itemupdating Bir Güncelleştir düğmesine tıklandığında, ancak DetailsView denetimi kaydı güncelleştirmeden önce gerçekleşir. Bu olay genellikle güncelleştirme işlemini iptal etmek için kullanılır.
Modechanged DetailsView denetimi modları (düzenleme, ekleme veya salt okunur mod) değiştirdikten sonra gerçekleşir. Bu olay genellikle DetailsView denetimi modları değiştirdiğinde bir görevi gerçekleştirmek için kullanılır.
Modechanging DetailsView denetimi modları (düzenleme, ekleme veya salt okunur mod) değiştirmeden önce gerçekleşir. Bu olay genellikle mod değişikliğini iptal etmek için kullanılır.
Pageındexchanged Çağrı aracı düğmelerinden birine tıklandığında, ancak DetailsView denetimi disk belleği işlemini işledikten sonra gerçekleşir. Bu olay genellikle kullanıcı denetimde farklı bir kayda gittikten sonra bir görev gerçekleştirmeniz gerektiğinde kullanılır.
Pageındexchanging Çağrı cihaz düğmelerinden birine tıklandığında, ancak DetailsView denetimi disk belleği işlemini işlemeden önce gerçekleşir. Bu olay genellikle disk belleği işlemini iptal etmek için kullanılır.

Menü Denetimi

ASP.NET 2.0'daki Menü denetimi, tam özellikli bir gezinti sistemi olacak şekilde tasarlanmıştır. SiteMapDataSource gibi hiyerarşik veri kaynaklarına kolayca veri bağlanabilir.

Menü denetimleri yapısı bildirim temelli veya dinamik olarak tanımlanabilir ve tek bir kök düğümden ve herhangi bir sayıda alt düğümden oluşur. Aşağıdaki kod, Menü denetimi için bir menüyü bildirimli olarak tanımlar.

<asp:menu id="NavigationMenu" disappearafter="2000" staticdisplaylevels="2" staticsubmenuindent="10" orientation="Vertical" font-names="Arial" target="_blank" runat="server"> <staticmenuitemstyle backcolor="LightSteelBlue" forecolor="Black"/> <statichoverstyle backcolor="LightSkyBlue"/> <dynamicmenuitemstyle backcolor="Black" forecolor="Silver"/> <dynamichoverstyle backcolor="LightSkyBlue" forecolor="Black"/> <items> <asp:menuitem navigateurl="Home.aspx" text="Home" tooltip="Home"> <asp:menuitem navigateurl="Music.aspx" text="Music" tooltip="Music"> <asp:menuitem navigateurl="Classical.aspx" text="Classical" tooltip="Classical"/> <asp:menuitem navigateurl="Rock.aspx" text="Rock" tooltip="Rock"/> <asp:menuitem navigateurl="Jazz.aspx" text="Jazz" tooltip="Jazz"/> </asp:menuitem> <asp:menuitem navigateurl="Movies.aspx" text="Movies" tooltip="Movies"> <asp:menuitem navigateurl="Action.aspx" text="Action" tooltip="Action"/> <asp:menuitem navigateurl="Drama.aspx" text="Drama" tooltip="Drama"/> <asp:menuitem navigateurl="Musical.aspx" text="Musical" tooltip="Musical"/> </asp:menuitem> </asp:menuitem> </items> </asp:menu>

Yukarıdaki örnekte Home.aspx düğümü kök düğümdür. Diğer tüm düğümler çeşitli düzeylerde kök düğümün içinde iç içe yerleştirilmiş durumdadır.

Menü denetiminin işleyebileceği iki tür menü vardır; statik menüler ve dinamik menüler. Statik menüler, her zaman görünür olan menü öğelerinden oluşur. Dinamik menüler, yalnızca kullanıcı fareyle üzerine geldiğinde görünen menü öğelerinden oluşur. Müşteriler genellikle statik menüleri bildirim temelli olarak tanımlanan menülerle ve dinamik menüleri çalışma zamanında veri bağlantısı olan menülerle karıştırabilir. Aslında dinamik ve statik menüler popülasyon yöntemiyle ilişkili değildir. Statik ve dinamik terimler yalnızca menünün varsayılan olarak statik olarak görüntülenip görüntülenmeyeceğini veya yalnızca kullanıcı bir işlem gerçekleştirilirken görüntülenip görüntülenmeyeceğini ifade eder.

StaticDisplayLevels özelliği, menünün kaç düzeyinin statik olduğunu ve dolayısıyla varsayılan olarak görüntüleneceğini yapılandırmak için kullanılır. Yukarıdaki örnekte StaticDisplayLevels özelliğinin 2 değerine ayarlanması, menünün giriş düğümünü, Müzik düğümünü ve Filmler düğümünü statik olarak görüntülemesine neden olabilir. Kullanıcı üst düğümün üzerine geldiğinde diğer tüm düğümler dinamik olarak görüntülenir.

MaximumDynamicDisplayLevels özelliği, menünün görüntüleyebilen en fazla dinamik düzey sayısını yapılandırıyor. MaximumDynamicDisplayLevels özelliği tarafından belirtilen değerden daha yüksek bir düzeydeki tüm dinamik menüler atılır.

Not

MaximumDynamicDisplayLevels özelliğinden dolayı menülerin işlenmediği durumlarla karşılaşabileceğinizden neredeyse emin olabilirsiniz. Böyle durumlarda, özelliğin müşteri menülerinin görüntülenmesine izin verecek kadar ayarlandığından emin olun.

Menü Denetimini Bağlayan Veri

Menü denetimi, SiteMapDataSource veya XMLDataSource gibi herhangi bir hiyerarşik veri kaynağına bağlanabilir. SiteMapDataSource, Web.sitemap dosyasından beslendiğinden ve şeması Menü denetimine bilinen bir API sağladığından, menü denetimine veri bağlama için en yaygın kullanılan yöntemdir. Aşağıdaki listede basit bir Web.sitemap dosyası gösterilmektedir.

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="~/default.aspx" description="Our Home Page" title="Home"> <siteMapNode url="~/products/default.aspx" title="Products" description="Our Products"> <siteMapNode url="~/products/winprods.aspx" title="Windows Products" description="Windows Products" /> <siteMapNode url="~/products/webprods.aspx" title="Web Products" description="Web Products" /> </siteMapNode> <siteMapNode url="~/services/default.aspx" title="Services" description="Our Services"> <siteMapNode url="~/services/consulting.aspx" title="Consulting Services" description="Consulting Services" /> <siteMapNode url="~/services/develop.aspx" title="Development Services" description="Development Services" /> </siteMapNode> </siteMapNode> </siteMap>

Yalnızca bir kök siteMapNode öğesi olduğuna dikkat edin, bu örnekte Home öğesi. Her siteMapNode için çeşitli öznitelikler yapılandırılabilir. En yaygın kullanılan öznitelikler şunlardır:

  • Url Kullanıcı menü öğesine tıkladığında görüntülenecek URL'yi belirtir. Bu öznitelik yoksa, tıklandığında düğüm geri gönderir.
  • Başlık Menü öğesinde görüntülenen metni belirtir.
  • Açıklama Düğüm için belge olarak kullanılır. Fare düğümün üzerine getirildiğinde de araç ipucu olarak görüntülenir.
  • Sitemapfile İç içe site haritalarına izin verir. Bu öznitelik iyi biçimlendirilmiş bir ASP.NET site haritası dosyasına işaret etmelidir.
  • Rolleri Bir düğümün görünümünün ASP.NET güvenlik kırpması tarafından denetlenmesini sağlar.

Bu özniteliklerin tümü isteğe bağlı olsa da, belirtilmezse menünün davranışının beklendiği gibi olmayabileceğini unutmayın. Örneğin, url özniteliği belirtilirse ancak açıklama özniteliği belirtilmezse düğüm görünür olmaz ve belirtilen URL'ye gitmenin hiçbir yolu yoktur.

Menü İşlemlerini Denetleme

ASP.NET Menü denetiminin çalışmasını etkileyen birkaç özellik vardır; Orientation özelliği, DisappearAfter özelliği, StaticItemFormatString özelliği ve StaticPopoutImageUrl özelliği bunlardan yalnızca birkaçıdır.

  • Yönlendirmeyatay veya dikey olarak ayarlanabilir ve statik menü öğelerinin yatay olarak bir satırda mı yoksa dikey olarak mı yerleştirilip yığılmayacağını denetler. Bu özellik dinamik menüleri etkilemez.
  • DisappearAfter özelliği, fare ondan uzaklaştıktan sonra dinamik menünün ne kadar süreyle görünür kalacağını yapılandırır. Değer milisaniye cinsinden belirtilir ve varsayılan olarak 500'dür. Bu özelliğin -1 değerine ayarlanması, menünün hiçbir zaman otomatik olarak kaybolmamasına neden olur. Bu durumda, menü yalnızca kullanıcı menünün dışına tıkladığında kaybolur.
  • StaticItemFormatString özelliği, menü sisteminizde tutarlı verim sağlamayı kolaylaştırır. Bu özellik belirtilirken, {0} veri kaynağında görüntülenen açıklama yerine girilmelidir. Örneğin, 1. alıştırmadaki menü öğesinin Ürünlerimizi Ziyaret Edin sayfasını vb. belirtmesi için StaticItemFormatString için Sayfamızı {0} Ziyaret Edin seçeneğini belirtmeniz gerekir. Çalışma zamanında, ASP.NET öğesinin herhangi bir örneğini {0} menü öğesi için doğru açıklamayla değiştirir.
  • StaticPopoutImageUrl özelliği, belirli bir menü düğümünün üzerine gelinerek erişilebilen alt düğümlere sahip olduğunu belirtmek için kullanılan görüntüyü belirtir. Dinamik menüler varsayılan görüntüyü kullanmaya devam eder.

Şablonlu Menü Denetimleri

Menü denetimi şablonlu bir denetimdir ve iki farklı ItemTemplates sağlar; StaticItemTemplate ve DynamicItemTemplate. Bu şablonları kullanarak menülerinize kolayca sunucu denetimleri veya kullanıcı denetimleri ekleyebilirsiniz.

Visual Studio .NET'te şablonları düzenlemek için menüde Akıllı Etiket düğmesine tıklayın ve Şablonları Düzenle'yi seçin. Daha sonra StaticItemTemplate veya DynamicItemTemplate düzenlemesi arasında seçim yapabilirsiniz.

StaticItemTemplate'a eklenen tüm denetimler, sayfa yüklendiğinde statik menüde görünür. DynamicItemTemplate'a eklenen tüm denetimler tüm açılır menülerde görünür.

Menü denetiminin kendine özgü iki olayı vardır; MenuItemClicked ve MenuItemDatabound olayı.

MenuItemClicked olayı, bir menü öğesine tıklandığında oluşturulur. Menü öğesi veriye bağlı olduğunda MenuItemDatabound olayı tetikleniyor. Olay işleyicisine geçirilen MenuEventArgs , Item özelliği aracılığıyla menü öğesine erişim sağlar.

Menü görünümünü denetleme

Menüleri biçimlendirmek için kullanılabilecek birçok stilden birini veya daha fazlasını kullanarak menü denetiminin görünümünü de etkileyebilirsiniz. Bunlar arasında StaticMenuStyle, DynamicMenuStyle, DynamicMenuItemStyle, DynamicSelectedStyle ve DynamicHoverStyle bulunur. Bu özellikler standart bir HTML Stili dizesi kullanılarak yapılandırılır. Örneğin, aşağıdakiler dinamik menülerin stilini etkiler.

<DynamicMenuStyle BorderStyle="Outset" BorderWidth="1px"
    BackColor="#D6D3CE" />

Not

Hover stillerinden herhangi birini kullanıyorsanız, runat öğesinin sunucu olarak ayarlandığı sayfaya bir <head> öğesi eklemeniz gerekir.

Menü denetimleri ASP.NET 2.0 temalarının kullanımını da destekler.

TreeView Denetimi

TreeView denetimi verileri ağaç benzeri bir yapıda görüntüler. Menü denetiminde olduğu gibi, SiteMapDataSource gibi herhangi bir hiyerarşik veri kaynağına kolayca bağlı veriler olabilir.

Müşterilerin ASP.NET 2.0'daki TreeView denetimi hakkında sorabilecekleri ilk soru, bunun ASP.NET 1.x için kullanılabilen TreeView IE WebControl ile ilgili olup olmadığıdır. Öyle değil. ASP.NET 2.0 TreeView denetimi baştan sona yazılmıştır ve daha önce kullanılabilir olan IE TreeView WebControl üzerinde önemli geliştirmeler sunar.

TreeView denetiminin, Menü denetimiyle tam olarak aynı şekilde gerçekleştirilen site haritasına nasıl bağlanacağını ayrıntılı olarak anlatmayacağım. Ancak TreeView denetiminin çalışma biçiminde bazı farklı farklar vardır.

Varsayılan olarak, TreeView denetimi tamamen genişletilmiş olarak görünür. İlk yüklemede genişletme düzeyini değiştirmek için denetimin ExpandDepth özelliğini değiştirin. Bu özellikle TreeView'un belirli düğümler genişletildiğinde veriye bağlı olduğu durumlarda önemlidir.

TreeView Denetimini DataBinding

Menü denetiminin aksine TreeView, büyük miktarda veriyi işlemek için kendini iyi bir şekilde ödünç verir. Bu nedenle, Bir SiteMapDataSource veya XMLDataSource'a veri bağlamaya ek olarak TreeView genellikle bir DataSet'e veya diğer ilişkisel verilere bağlı verilerdir. TreeView denetiminin büyük miktarda veriye bağlı olduğu durumlarda, yalnızca denetimde gerçekten görünür olan verilere bağlanmak en iyisidir. Daha sonra TreeView düğümleri genişletildikçe ek verilere veri bağlayabilirsiniz.

Böyle durumlarda, TreeView'un PopulateOnDemand özelliği true olarak ayarlanmalıdır. Daha sonra TreeNodePopulate yöntemi için bir uygulama sağlamanız gerekir.

Geri Gönderme Olmadan Veri Bağlama

Önceki örnekteki bir düğümü ilk kez genişlettiğinizde sayfanın geri gönderip yenilendiğini fark edin. Bu örnekte sorun olmaz, ancak büyük miktarda veri içeren bir üretim ortamında olabileceğini düşünebilirsiniz. Daha iyi bir senaryo, TreeView'un düğümlerini dinamik olarak dolduracağı, ancak sunucuya geri göndermediği bir senaryo olabilir.

PopulateNodesFromClient ve PopulateOnDemand özelliklerini true olarak ayarlayarak, ASP.NET TreeView denetimi geri gönderme olmadan düğümleri dinamik olarak doldurur. Üst düğüm genişletildiğinde istemciden bir XMLHttp isteği yapılır ve OnTreeNodePopulate olayı tetiklenir. Sunucu, daha sonra alt düğümleri bağlamak için kullanılan bir XML veri adasıyla yanıt verir.

ASP.NET bu işlevi uygulayan istemci kodunu dinamik olarak oluşturur. Betiği <içeren betik> etiketleri bir AXD dosyasına işaret ederek oluşturulur. Örneğin, aşağıdaki listede XMLHttp isteğini oluşturan betik kodunun betik bağlantıları gösterilmektedir.

<script src="/WebSite1/WebResource.axd?d=QQG9vSdBi4_k2y9AeP_iww2&
    amp;t=632514255396426531"
    type="text/javascript"></script>

Yukarıdaki AXD dosyasına tarayıcınızda göz atar ve dosyayı açarsanız XMLHttp isteğini uygulayan kodu görürsünüz. Bu yöntem müşterilerin betik dosyasını değiştirmesini engeller.

TreeView Denetiminin İşlemini Denetleme

TreeView denetiminin, denetimin çalışmasını etkileyen çeşitli özellikleri vardır. En belirgin özellikler ShowCheckBoxes, ShowExpandCollapse ve ShowLines'tır.

ShowCheckBoxes özelliği, işlendiğinde düğümlerin onay kutusu görüntüleyip görüntülemediğini etkiler. Bu özelliğin geçerli değerleri None, Root, Parent, Leaf ve All değerleridir. Bunlar TreeView denetimini aşağıdaki gibi etkiler:

Özellik Değeri Etki
Hiçbiri Onay kutuları hiçbir düğümde görüntülenmez. Bu varsayılan ayardır.
Root Onay kutusu yalnızca kök düğümde görüntülenir.
Parent Onay kutusu yalnızca alt düğümleri olan düğümlerde görüntülenir. Bu alt düğümler üst düğümler veya yaprak düğümler olabilir.
Leaf Onay kutusu yalnızca alt düğüm içermeyen düğümlerde görüntülenir.
Tümü Tüm düğümlerde bir onay kutusu görüntülenir.

Onay kutuları kullanılırken CheckedNodes özelliği, geri gönderme sırasında denetlenen bir TreeView düğümleri koleksiyonu döndürür.

ShowExpandCollapse özelliği, kök ve üst düğümlerin yanında genişletme/daraltma görüntüsünün görünümünü denetler. Bu özellik false olarak ayarlanırsa, TreeView düğümleri köprü olarak işlenir ve bağlantıya tıklanarak genişletilir/daraltılır.

ShowLines özelliği, üst düğümleri alt düğümlere bağlayan çizgilerin görüntülenip görüntülenmeyeceğini denetler. False olduğunda (varsayılan), hiçbir satır görüntülenmez. Doğru olduğunda, TreeView denetimi LineImagesFolder özelliği tarafından belirtilen klasörde satır görüntülerini kullanır.

TreeView çizgilerinin görünümünü özelleştirmek için Visual Studio .NET 2005 bir Çizgi Tasarım Aracı aracı içerir. Aşağıdaki gibi TreeView denetimindeki Akıllı Etiket düğmesini kullanarak bu aracı kullanabilirsiniz.

Visual Studio çizgi tasarımcısı aracının ekran görüntüsü. İmleç, Çizgi Görüntülerini Özelleştir seçiminin üzerine gelir.

Şekil 1

Çizgi Görüntülerini Özelleştir menü seçeneği seçildiğinde, TreeView çizgilerinin görünümünü yapılandırmanıza olanak sağlayan Çizgi Tasarım Aracı aracı başlatılır.

TreeView Olayları

TreeView denetimi aşağıdaki benzersiz olaylara sahiptir:

  • SelectedNodeChanged SelectAction özelliğine göre bir düğüm seçildiğinde gerçekleşir.
  • TreeNodeCheckChanged Bir düğüm onay kutusu durumu değiştirildiğinde gerçekleşir.
  • TreeNodeExpanded Bir düğüm SelectAction özelliğine göre genişletildiğinde gerçekleşir.
  • TreeNodeCollapsed Bir düğüm daraltıldığında gerçekleşir.
  • TreeNodeDataBound, bir düğüm veriye bağlı olduğunda gerçekleşir.
  • TreeNodePopulate Bir düğüm doldurulduğunda gerçekleşir.

SelectAction özelliği, bir düğüm seçildiğinde tetiklenen olayı yapılandırmanıza olanak tanır. SelectAction özelliği aşağıdaki eylemleri sağlar:

  • TreeNodeSelectAction.Expand Düğüm seçildiğinde TreeNodeExpanded öğesini yükseltir.
  • TreeNodeSelectAction.None Düğüm seçildiğinde hiçbir olay tetiklemez.
  • TreeNodeSelectAction.Select Düğüm seçildiğinde SelectedNodeChanged olayını yükseltir.
  • TreeNodeSelectAction.SelectExpand Düğüm seçildiğinde hem SelectedNodeChanged olayını hem de TreeNodeExpanded olayını yükseltir.

TreeView ile Görünümü Denetleme

TreeView denetimi, denetimin görünümünü stillerle denetlemek için birçok özellik sağlar. Aşağıdaki özellikler kullanılabilir.

Özellik Adı Denetimler
Hovernodestyle Fare üzerine getirildiğinde düğümlerin stilini denetler.
LeafNodeStyle Yaprak düğümlerin stilini denetler.
Nodestyle Tüm düğümlerin stilini denetler. Belirli düğüm stilleri (LeafNodeStyle gibi) bu stili geçersiz kılar.
Parentnodestyle Tüm üst düğümler için stili denetler.
RootNodeStyle Kök düğümün stilini denetler.
SelectedNodeStyle Seçili düğümün stilini denetler.

Bu özelliklerin her biri salt okunurdur. Ancak, her biri bir TreeNodeStyle nesnesi döndürür ve bu nesnenin özellikleri property-subproperty biçimi kullanılarak değiştirilebilir. Örneğin, SelectedNodeStyle'ınForeColor özelliğini ayarlamak için aşağıdaki söz dizimini kullanırsınız:

<asp:TreeView id=sampleTreeView
    SelectedNodeStyle-ForeColor=Blue
    runat=server>

Yukarıdaki etiketin kapatılmadığını fark edin. Bunun nedeni, burada gösterilen bildirim temelli söz dizimini kullanırken HTML koduna TreeViews düğümlerini de eklemenizdir.

Stil özellikleri, property.subproperty biçimi kullanılarak kodda da belirtilebilir. Örneğin, kodda RootNodeStyle'ınForeColor özelliğini ayarlamak için aşağıdaki söz dizimini kullanırsınız:

treeView1.RootNodeStyle.ForeColor = System.Drawing.Color.Red;

Not

Farklı stil özelliklerinin kapsamlı bir listesi için TreeNodeStyle nesnesinde MSDN belgelerine bakın.

SiteMapPath Denetimi

SiteMapPath denetimi, ASP.NET geliştiriciler için bir ekmek kırıntısı gezinti denetimi sağlar. Diğer gezinti denetimleri gibi, SiteMapDataSource veya XmlDataSource gibi hiyerarşik veri kaynaklarına kolayca bağlı veriler olabilir.

SiteMapPath denetimi, SiteMapNodeItem nesnelerinden oluşur. Üç tür düğüm vardır; Kök düğüm, Üst düğümler ve Geçerli düğüm. Kök düğüm, hiyerarşik yapının en üstündeki düğümdür. Geçerli düğüm geçerli sayfayı temsil eder. Diğer tüm düğümler üst düğümlerdir.

SiteMapPath Denetiminin İşlemini Denetleme

SiteMapPath denetiminin çalışmasını denetleen özellikler aşağıdaki gibidir:

Özellik Özelliğin Açıklaması
ParentLevelsDisplayed Kaç üst düğümün görüntüleneceğini denetler. Varsayılan değer -1'dir ve görüntülenen üst düğüm sayısına kısıtlama getirmez.
PathDirection SiteMapPath'in yönünü denetler. Geçerli değerler RootToCurrent (varsayılan) ve CurrentToRoot değerleridir.
PathSeparator SiteMapPath denetimindeki düğümleri ayıran karakteri denetleen dize. Varsayılan değer:
RenderCurrentNodeAsLink Geçerli düğümün bağlantı olarak işlenip işlenmeyeceğini denetleyen boole değeri. Varsayılan değer False'tur.
Skiplinktext Sayfa ekran okuyucular tarafından görüntülendiğinde erişilebilirliği destekler. Bu özellik, ekran okuyucuların SiteMapPath denetimini atlamasına olanak tanır. Bu özelliği devre dışı bırakmak için özelliğini String.Empty olarak ayarlayın.

Şablonlu Site HaritasıPath Denetimleri

SiteMapControl şablonlu bir denetimdir ve bu nedenle, denetimi görüntülerken kullanılacak farklı şablonlar tanımlayabilirsiniz. Site HaritasıPath denetimindeki şablonları düzenlemek için denetimdeki Akıllı Etiket düğmesine tıklayın ve menüden Şablonları Düzenle'yi seçin. Aşağıda gösterildiği gibi, kullanılabilir farklı şablonlar arasında seçim yapabileceğiniz Site Haritası Görevleri menüsü görüntülenir.

SiteMapControl şablonu düzenleme modu menüsünün ekran görüntüsü. NodeTemplate vurgulanmış.

Şekil 2

NodeTemplate şablonu, SiteMapPath'teki herhangi bir düğüme başvurur. Düğüm bir kök düğüm veya geçerli düğümse ve RootNodeTemplate veya CurrentNodeTemplate yapılandırılmışsa NodeTemplate geçersiz kılınmış olur.

SiteMapPath Olayları

SiteMapPath denetiminin Control sınıfından türetilmemiş iki olayı vardır; ItemCreated olayı ve ItemDataBound olayı. ItemCreated olayı, bir SiteMapPath öğesi oluşturulduğunda oluşturulur. Bir SiteMapPath düğümünün veri bağlaması sırasında DataBind yöntemi çağrıldığında ItemDataBound oluşturulur. SiteMapNodeItemEventArgs nesnesi, Item özelliği aracılığıyla belirli Bir Site HaritasıNodeItem'e erişim sağlar.

SiteMapPath ile Görünümü Denetleme

SiteMapPath denetimini biçimlendirmek için aşağıdaki stiller kullanılabilir.

Özellik Adı Denetimler
CurrentNodeStyle Geçerli düğüm için metnin stilini denetler.
RootNodeStyle Kök düğüm için metnin stilini denetler.
Nodestyle CurrentNodeStyle veya RootNodeStyle'ın geçerli olmadığını varsayarak tüm düğümler için metnin stilini denetler.

NodeStyle özelliği CurrentNodeStyle veya RootNodeStyle tarafından geçersiz kılınmış. Bu özelliklerin her biri salt okunurdur ve bir Style nesnesi döndürür. Bu özelliklerden birini kullanarak düğümün görünümünü etkilemek için, döndürülen Style nesnesinin özelliklerini ayarlamanız gerekir. Örneğin, aşağıdaki kod geçerli düğümün forecolor özelliğini değiştirir.

<asp:SiteMapPath runat="server" ID="SiteMapPath1"
  CurrentNodeStyle-ForeColor="Orange"/>

Özelliği aşağıdaki gibi program aracılığıyla da uygulanabilir:

this.SiteMapPath1.CurrentNodeStyle.ForeColor =
    System.Drawing.Color.Orange;

Not

Şablon uygulanırsa, stil uygulanmaz.

Laboratuvar 1: ASP.NET Menü Denetimi Yapılandırma

  1. Yeni bir Web sitesi oluşturun.

  2. Dosya, Yeni, Dosya'yı ve dosya şablonları listesinden Site Haritası'nı seçerek bir Site Haritası dosyası ekleyin.

  3. Site haritasını (varsayılan olarak Web.site haritası) açın ve aşağıdaki liste gibi görünecek şekilde değiştirin. Site haritası dosyasında bağladığınız sayfalar gerçekten yok, ancak bu alıştırma için sorun olmayacaktır.

    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
        <siteMapNode url="~/default.aspx">
            <siteMapNode url="~/products/default.aspx"
              title="Products" description="Our Products">
                <siteMapNode url="~/products/winprods.aspx"
                  title="Windows Products" description="Windows Products" />
                <siteMapNode url="~/products/webprods.aspx"
                  title="Web Products" description="Web Products" />
            </siteMapNode>
            <siteMapNode url="~/services/default.aspx"
              title="Services" description="Our Services">
                <siteMapNode url="~/services/consulting.aspx"
                  title="Consulting Services"
                  description="Consulting Services" />
                <siteMapNode url="~/services/develop.aspx"
                  title="Development Services"
                  description="Development Services" />
            </siteMapNode>
        </siteMapNode>
    </siteMap>
    
  4. Varsayılan Web formunu Tasarım görünümünde açın.

  5. Araç Kutusu'nun Gezinti bölümünden sayfaya yeni bir Menü denetimi ekleyin.

  6. Araç Kutusu'nun Veri bölümünden yeni bir Site HaritasıDataSource ekleyin. SiteMapDataSource, sitenizdeki Web.sitemap dosyasını otomatik olarak kullanır. (Web.site haritası dosyası sitenin kök klasöründe olmalıdır .)

  7. Menü denetimine tıklayın ve ardından Menü Görevleri iletişim kutusunu görüntülemek için Akıllı Etiket düğmesine tıklayın.

  8. Veri Kaynağı Seç açılan listesinde SiteMapDataSource1'i seçin.

  9. Otomatik Biçim bağlantısına tıklayın ve Menü için bir biçim seçin.

  10. Özellikler bölmesinde StaticDisplayLevels özelliğini 2 olarak ayarlayın. Menü denetimi artık Tasarım Aracı Giriş, Ürünler ve Hizmetler düğümünü görüntülemelidir.

  11. Menüyü kullanmak için tarayıcınızda sayfaya göz atın. (Site haritasına eklediğiniz sayfalar aslında mevcut olmadığından, sayfalara göz atmayı denediğinizde bir hata görürsünüz.)

StaticDisplayLevels ve MaximumDynamicDisplayLevels özelliklerini değiştirmeyi deneyin ve menünün nasıl işlendiğini nasıl etkilediklerini görün.

Laboratuvar 2: TreeView Denetimini Dinamik Olarak Bağlama

Bu alıştırmada yerel olarak çalışan SQL Server ve northwind veritabanının SQL Server örneğinde mevcut olduğu varsayılır. Bu koşullar karşılanmazsa lütfen örnekteki bağlantı dizesini değiştirin. Güvenilir bağlantı yerine SQL Server kimlik doğrulamasını da belirtmeniz gerekebileceğini unutmayın.

  1. Yeni bir Web sitesi oluşturun.

  2. Default.aspx için Kod görünümüne geçin ve tüm kodu aşağıda listelenen kodla değiştirin.

    <%@ Page Language="C#" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.SqlClient" %>
    
    <script runat="server">
        void PopulateNode(Object sender, TreeNodeEventArgs e) {
            // Call the appropriate method to populate a node at a particular level.
            switch (e.Node.Depth) {
                case 0:
                    // Populate the first-level nodes.
                    PopulateCategories(e.Node);
                    break;
                case 1:
                    // Populate the second-level nodes.
                    PopulateProducts(e.Node);
                    break;
                default:
                    // Do nothing.
                    break;
            }
    
        }
        void PopulateCategories(TreeNode node) {
    
            // Query for the product categories. These are the values
            // for the second-level nodes.
            DataSet ResultSet = RunQuery("Select CategoryID, CategoryName From Categories");
            // Create the second-level nodes.
            if (ResultSet.Tables.Count > 0) {
    
                // Iterate through and create a new node for each row in the query results.
                // Notice that the query results are stored in the table of the DataSet.
                foreach (DataRow row in ResultSet.Tables[0].Rows) {
    
                    // Create the new node. Notice that the CategoryId is stored in the Value property
                    // of the node. This will make querying for items in a specific category easier when
                    // the third-level nodes are created.
                    TreeNode newNode = new TreeNode();
                    newNode.Text = row["CategoryName"].ToString();
                    newNode.Value = row["CategoryID"].ToString();
                    // Set the PopulateOnDemand property to true so that the child nodes can be
                    // dynamically populated.
                    newNode.PopulateOnDemand = true;
    
                    // Set additional properties for the node.
                    newNode.SelectAction = TreeNodeSelectAction.Expand;
    
                    // Add the new node to the ChildNodes collection of the parent node.
                    node.ChildNodes.Add(newNode);
    
                }
    
            }
    
        }
        void PopulateProducts(TreeNode node) {
            // Query for the products of the current category. These are the values
            // for the third-level nodes.
            DataSet ResultSet = RunQuery("Select ProductName From Products Where CategoryID=" + node.Value);
            // Create the third-level nodes.
            if (ResultSet.Tables.Count > 0) {
    
                // Iterate through and create a new node for each row in the query results.
                // Notice that the query results are stored in the table of the DataSet.
                foreach (DataRow row in ResultSet.Tables[0].Rows) {
    
                    // Create the new node.
                    TreeNode NewNode = new TreeNode(row["ProductName"].ToString());
    
                    // Set the PopulateOnDemand property to false, because these are leaf nodes and
                    // do not need to be populated.
                    NewNode.PopulateOnDemand = false;
    
                    // Set additional properties for the node.
                    NewNode.SelectAction = TreeNodeSelectAction.None;
    
                    // Add the new node to the ChildNodes collection of the parent node.
                    node.ChildNodes.Add(NewNode);
    
                }
    
            }
        }
        DataSet RunQuery(String QueryString) {
            // Declare the connection string. This example uses Microsoft SQL Server
            // and connects to the Northwind sample database.
            String ConnectionString = "server=localhost;database=NorthWind;Integrated Security=SSPI";
            SqlConnection DBConnection = new SqlConnection(ConnectionString);
            SqlDataAdapter DBAdapter;
            DataSet ResultsDataSet = new DataSet();
            try {
                // Run the query and create a DataSet.
                DBAdapter = new SqlDataAdapter(QueryString, DBConnection);
                DBAdapter.Fill(ResultsDataSet);
                // Close the database connection.
                DBConnection.Close();
            } catch (Exception ex) {
                // Close the database connection if it is still open.
                if (DBConnection.State == ConnectionState.Open) {
                    DBConnection.Close();
                }
    
                Message.Text = "Unable to connect to the database.";
            }
            return ResultsDataSet;
        }
    </script>
    
    <html>
    <body>
        <form id="Form1" runat="server">
            <h3>
                TreeView PopulateNodesFromClient Example</h3>
            <asp:TreeView ID="LinksTreeView" 
              Font-Name="Arial" ForeColor="Blue" EnableClientScript="true"
              PopulateNodesFromClient="false" 
              OnTreeNodePopulate="PopulateNode" runat="server"
                ExpandDepth="0">
                <Nodes>
                    <asp:TreeNode Text="Inventory" SelectAction="Expand"
                                  PopulateOnDemand="True" Value="Inventory" />
                </Nodes>
            </asp:TreeView>
            <br>
            <br>
            <asp:Label ID="Message" runat="server" />
        </form>
    </body>
    </html>
    
  3. Sayfayı treeview.aspx olarak kaydedin.

  4. Sayfaya göz atın.

  5. Sayfa ilk kez görüntülendiğinde, tarayıcınızda sayfanın kaynağını görüntüleyin. İstemciye yalnızca görünür düğümlerin gönderildiğini unutmayın.

  6. Herhangi bir düğümün yanındaki artı işaretine tıklayın.

  7. Sayfadaki kaynağı yeniden görüntüleyin. Yeni görüntülenen düğümlerin artık mevcut olduğuna dikkat edin.

Laboratuvar 3: GridView Ve DetailsView Kullanarak Verileri Görüntüleme ve Düzenleme Ayrıntıları

  1. Yeni bir Web sitesi oluşturun.

  2. Web sitesine yeni bir web.config ekleyin.

  3. Aşağıda gösterildiği gibi web.config dosyasına bir bağlantı dizesi ekleyin:

    <connectionStrings>
        <add name="Northwind"
             providerName="System.Data.SqlClient"
             connectionString="Data Source=localhost;Integrated Security=SSPI;
             Initial Catalog=Northwind;"/>
    </connectionStrings>
    

    Not

    Bağlantı dizesini ortamınıza göre değiştirmeniz gerekebilir.

  4. web.config dosyasını kaydedin ve kapatın.

  5. Default.aspx dosyasını açın ve yeni bir SqlDataSource denetimi ekleyin.

  6. SqlDataSource denetiminin kimliğini Products olarak değiştirin.

  7. SqlDataSource Görevleri menüsünde Veri Kaynağını Yapılandır'a tıklayın.

  8. Bağlantı açılan listesinde Northwind'i seçin ve İleri'ye tıklayın.

  9. Ad açılan listesinden Ürünler'i seçin ve aşağıda gösterildiği gibi ProductID, ProductName, UnitPrice ve UnitsInStock onay kutularını işaretleyin.

Veri kaynağı ürünlerini yapılandırma ekranının ekran görüntüsü.

Şekil 3

  1. İleri’ye tıklayın.
  2. Finish (Son) düğmesine tıklayın.
  3. Kaynak görünümüne geçin ve oluşturulan kodu inceleyin. SqlDataSource denetimine eklenen SelectCommand, DeleteCommand, InsertCommand ve UpdateCommand'a dikkat edin. Ayrıca eklenen parametrelere de dikkat edin.
  4. Tasarım görünümüne geçin ve sayfaya yeni bir GridView denetimi ekleyin.
  5. Veri Kaynağı Seç açılan listesinden Ürünler'i seçin.
  6. Aşağıda gösterildiği gibi Sayfalandırmayı Etkinleştir ve Seçimi Etkinleştir'i işaretleyin.

GridView Görevleri menüsünün ekran görüntüsü.

Şekil 4

  1. Sütunları Düzenle bağlantısına tıklayın ve Alanları otomatik olarak oluştur seçeneğinin işaretli olduğundan emin olun.
  2. Tamam'a tıklayın.
  3. GridView denetimi seçili durumdayken, Özellikler bölmesinde DataKeyNames özelliğinin yanındaki düğmeye tıklayın.
  4. Kullanılabilir veri alanları listesinden ProductID'yi seçin ve eklemek için düğmeye tıklayın>.
  5. Tamam'a tıklayın.
  6. Sayfaya yeni bir SqlDataSource denetimi ekleyin.
  7. SqlDataSource denetiminin kimliğini Ayrıntılar olarak değiştirin.
  8. SqlDataSource Görevleri menüsünde Veri Kaynağını Yapılandır'ı seçin.
  9. Açılan listeden Northwind'i seçin ve İleri'ye tıklayın.
  10. Ad açılan listesinden Ürünler'i seçin ve <Sütunlar liste kutusunda /strong>* onay kutusunu işaretleyin.
  11. WHERE düğmesine tıklayın.
  12. Sütun açılan listesinden ProductID'yi seçin.
  13. İşleç açılan listesinden öğesini seçin = .
  14. Kaynak açılan listesinden Denetim'i seçin.
  15. Denetim Kimliği açılan listesinden GridView1'i seçin.
  16. WHERE yan tümcesini eklemek için Ekle düğmesine tıklayın.
  17. Tamam'a tıklayın.
  18. Gelişmiş düğmesine tıklayın ve INSERT, UPDATE ve DELETE deyimleri oluştur onay kutusunu işaretleyin.
  19. Tamam'a tıklayın.
  20. İleri'ye ve son'a tıklayın.
  21. Sayfaya detailsView denetimi ekleyin.
  22. Veri Kaynağı Seç açılan listesinde Ayrıntılar'ı seçin.
  23. Aşağıda gösterildiği gibi Düzenlemeyi Etkinleştir onay kutusunu işaretleyin.

DetailsView Görevleri menüsünün ekran görüntüsü.

Şekil 5 39. Sayfayı kaydedin ve Default.aspx'a göz atın. 40. DetailsView güncelleştirmesini otomatik olarak görmek için farklı kayıtların yanındaki Seç bağlantısına tıklayın. 41. DetailsView denetimindeki Düzenle bağlantısına tıklayın. 42. Kayıtta bir değişiklik yapın ve Güncelleştir'e tıklayın.