Sayfalar

8 Haziran 2013 Cumartesi

ASP.NET MVC DERSLERİ ( 6.10 ) DATAANNOTATIONS DISPLAY VE EDIT ANNOTATIONS

Display
Daha önceki yazılarda bahsettiğimiz, kategori ekleme ekranını bir hatırlayalım. Ekran görüntüsü aşağıdaki gibi.

enter image description here
Model sınıfı içerisinde kategori adı tanımlaması:
[Display(Name = "Kategori")]
public string Ad { get; set; }
view sayfasındaki tanımlama:
<div class="editor-label">@Html.LabelFor(model => model.Ad)</div>
<div class="editor-field">@Html.TextBoxFor(model => model.Ad)</div>
<div>@Html.ValidationMessageFor(model => model.Ad)</div>
Kodlara bakınca aslında çok ta anlatacak birşey yok gibi. Model içerisinde tanımladığımız özellik adının, view sayfasında nasıl görüneceğini belirliyoruz ve LabelFor içerisinde çağırdığımızda bu nitelik çalışmaktadır.

ScaffoldColumn
Düzenlenmesini istemediğimiz model özelliği için kullanılır. Böylece bu alan EditorForModel kullandığımızda gizlenecektir. Örneğin, modelin id sini kendimiz belirlemiyoruz. Bu özelliği veritabanına bırakıyoruz. Dolayısıyla bu alan için ScaffoldColumn nitaliği kullanabiliriz.
[ScaffoldColumn(false)]
public int Id { get; set; }

DisplayFormat
Model özelliğini formatlı göstermek için kullanabiliriz. Örneğin;
[DisplayFormat(ApplyFormatInEditMode=true, DataFormatString="{0:c}")]
public decimal Ucret { get; set; }
Şeklinde bir kullanımda, bu alanın görüntüsü söyle olacaktır:
12.50 TL
ApplyFormatInEditMode özelliği varsayılan olarak false dur. Eğer bu formatlı görüntünün input içerisinde de görünmesini istiyorsak true yaparız.

ReadOnly
Bu niteliği kullandığımız özellik değiştirelemez, sadece görüntülenir. Kullanımı;
[ReadOnly(true)]
public decimal Ucret { get; set; }

DataType
Modelin özelliği için veri tipi belirleyebiliriz. Örneğin;
[Display(Name="Password")]
public string Sifre { get; set; }
Şeklinde bir tanımlama yaparsak, textbox içerisine girdiğimiz karakterler, yıldız olarak görünecektir.

UIHint
Bu nitelik ile kendi belirlediğimiz bir templated-helper elemanını kullanabiliriz. Bu konuyu ileride göreceğiz.

HiddenInput
Bu nitelikte modelin özelliğini gizlemek için kullanılır. Aslında veri server a gönderilir ama, kullanıcı bunu göremez ve değiştiremez.

1 yorum: