ClassViewer
26 Eylül Pazar, 2010 | Asp.net C# Css Html /*Yorumlar (0)*/
Geçenlerde herhangi bir uygulama geliştiriyordum ki aniden bir kontrol ihtiyacım oldu. Söyle ki;
Bir Classnesne oluşturdum.
public class Employee
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public decimal Salary { get; set; }
public DateTime HireDate { get; set; }
}
Daha sonra kopyasınıinstance çıkarıp özelliklerine değer atadım. Buraya kadar herşey normal. Peki dedim şunu birde WebForm'unda zahmetsiz bir şekilde gösterebilsem ne süper olur.
Böyle durumda akla en yatkın DetailsView veri kontrolü kullanmaktır. Lakin kontrolün DataSource özelliğine herhangi bir nesneyi zart diye atayamazsınız. Eğer atarsanız şöyle bir hata alırsınız

Hoş değil :(
Bu gibi durumlarda olmasa ne zaman kontrol geliştireceğiz ki :)
Peki ne yapmak lazım;
Mantık basit. Reflection ile nesne özelliklerini okumak, kontrolün ihtiyaç duyabileceği ekstra bilgileri Attributenitelik yardımı ile iletmek.
[Serializable]
public class Employee
{
[FieldAttributes(IsVisible = false)]
public int ID { get; set; }
[FieldAttributes(FieldHead = "Ad")]
public string FirstName { get; set; }
[FieldAttributes(FieldHead = "Soyad")]
public string LastName { get; set; }
[FieldAttributes(FieldHead = "Maaş", Format = "N2")]
public decimal Salary { get; set; }
[FieldAttributes(FieldHead = "İşe Başlama Tarihi", Format = "dd.MM.yyyy")]
public DateTime HireDate { get; set; }
}
Kullanımın kolay olması için SmartTag ve DesignTimeSupport gibi atraksiyonlar.

Sonuç;

Proje dosyası.