Card
Bir veri kaynağındaki kayıtları kart (kutucuk) biçiminde listeleyen görsel nesnedir. Her kayıt için bir başlık ve bir veya birkaç değer satırı içeren kart üretir.
Değer tipi: Bu nesnenin tek bir skaler değeri yoktur; veri taşıyıcısı kart listesidir. İçeriği bir veri kaynağından beslenebileceği gibi koddan Items (List<CardItem>) ya da Data (List<Dictionary<String, Object>>) özelliklerine atanarak da oluşturulabilir.
Ne zaman kullanılır?
Az sayıda kaydı sade ve okunur bir kutucuk düzeninde göstermek istediğinizde kullanın: özet bilgi panoları, son işlemler, kısa kayıt listeleri. Çok sütunlu ve filtrelenebilir tablolar için Grid, tek bir kaydın alanlarını düzenli göstermek için Panel daha uygundur.
Tasarımcı özellikleri
Bir Card seçildiğinde Özellik Görüntüleyici sekmelere ayrılır.
General
| Özellik | Açıklama |
|---|---|
Name | Nesnenin koddaki adı (ör. Card1). Koddan bu adla erişirsiniz. |
ControlId | Nesnenin dahili kimliği. |
Data Source
Kartların hangi kayıtlardan üretileceğini ve her kartta hangi alanların görüneceğini belirler.
| Özellik | Açıklama |
|---|---|
Data Source | Kartların besleneceği veri kaynağı (ör. bir .mssqlds sorgusu). |
Data Source Type | Veri kaynağının tipi: Dynamic, Static, Relation, Action, Fields. |
Data | Kartların doğrudan koddan beslendiği kayıt listesi (List<Dictionary<String, Object>>). |
Items | Kart öğelerinin listesi (List<CardItem>); her öğe bir kartı temsil eder. |
Behavior
| Özellik | Açıklama |
|---|---|
Title Expr | Her kartın başlığını üreten ifade (TitleExpr, hangi alanın başlık olacağı). |
Value Exprs | Kartta başlığın altında gösterilecek değer satırlarını üreten ifadeler (ValueExprs, String[]). |
Wrapper Direction | Kartların dizilme yönü. WrapperDirection enum'u: Horizontal (yan yana) veya Vertical (alt alta). |
Appearance
| Özellik | Açıklama |
|---|---|
Title | Nesnenin başlığı (MultiLanguageText, çok dilli olabilir). |
Caption | Nesnenin etiketi (ControlCaption). |
Style / Container Style | Nesnenin ve kapsayıcısının stil ayarları (Style). |
Custom Class Name | Nesneye eklenecek özel CSS sınıf adı (CustomClassName). |
Visible / Client Visible | Nesnenin görünürlüğü. Client Visible yalnızca tarayıcı tarafında etkilidir. |
Enabled / Client Enabled | Nesnenin aktif olup olmadığı. Client Enabled yalnızca tarayıcı tarafında etkilidir. |
Default Enabled / Default Client Enabled | Enabled / Client Enabled için başlangıç değerleri. |
Loading | Nesnenin yüklenme (bekleme) durumunu gösterir (Boolean). |
Context Menu
Kartlara sağ tık menüsü bağlamak için kullanılır.
| Özellik | Açıklama |
|---|---|
Context Menu Key | Bağlanacak içerik menüsünün anahtarı (ContextMenuKey). |
Context Menu Column Key | Menünün bağlanacağı sütun anahtarı (ContextMenuColumnKey). |
Context Menu Target | Menünün hangi hedefe çıkacağı. ContextMenuTarget enum'u: Container, None, Row, Column. |
CardItem ve CardValue yapısı
Kartları koddan üretmek için Items listesine CardItem nesneleri eklenir. Her CardItem bir kartı, içindeki her CardValue ise o karttaki bir değer satırını temsil eder.
Bimser.CSP.FormControls.Controls.CardControl.CardItem
| Üye | Tip | Açıklama |
|---|---|---|
Key | String | Kartın anahtarı (kaydı ayırt eden değer). |
Title | String | Kartın başlık satırı. |
Values | List<CardValue> | Kartta gösterilecek değer satırları. |
Bimser.CSP.FormControls.Controls.CardControl.CardValue
| Üye | Tip | Açıklama |
|---|---|---|
Caption | String | Değer satırının etiketi. |
Value | String | Değer satırının içeriği. |
Yardımcı metotlar
Card, VisualControl nesnesinden şu yardımcı metotları devralır:
| Metot | Ne yapar |
|---|---|
Show() / Hide() | Nesneyi gösterir / gizler. |
ShowLoading() / HideLoading() | Yüklenme göstergesini açar / kapatır. |
ToggleLoading() | Yüklenme göstergesini tersine çevirir. |
ScrollTo() | Sayfayı nesnenin görünür olacağı yere kaydırır. |
FireClick() | Nesnenin tıklama olayını programatik olarak tetikler. |
Olaylar
Card, VisualControl (ve onun atası BaseControl) üzerinden gelen genel yaşam döngüsü ve fare olaylarına sahiptir. Bunların tümü sunucu tarafında C# olarak çalışan ortak temel olaylardır; istemci için ayrı bir olay kümesi yoktur.
Card DataBoundControl değil, doğrudan VisualControl nesnesinden türer. Bu nedenle veriye özel OnDataLoad olayı yoktur (bu olay yalnızca DataBoundControl ve türevlerinde bulunur). Card için tasarımcı panelinde de özel bir olay listelenmez; aşağıdakiler temel sınıflardan gelen ortak yaşam döngüsü olaylarıdır.
Açılış sırası: OnInit → OnLoad → OnPreRender → OnRender
Olaylar (Server, C#)
| Olay | İmza | Ne zaman çalışır |
|---|---|---|
OnInit | (Object sender, InitEventArgs e) | Form açılırken nesne oluşturulduğunda, en başta. |
OnLoad | (Object sender, LoadEventArgs e) | OnInit'in hemen ardından, nesne yüklenince. |
OnPreRender | (Object sender, PreRenderEventArgs e) | Nesne ekrana çizilmeden hemen önce. |
OnRender | (Object sender, RenderEventArgs e) | Nesne ekrana çizilirken. |
OnPropertyChanging | (Object sender, PropertyChangingEventArgs<Object> e) | Bir özellik kodla değiştirilmeden hemen önce. |
OnPropertyChanged | (Object sender, PropertyChangedEventArgs<Object> e) | Bir özellik kodla değiştirildikten hemen sonra. |
OnClick | (Object sender, MouseEventArgs e) | Nesneye tıklanınca (VisualControl). |
OnDoubleClick | (Object sender, MouseEventArgs e) | Nesneye çift tıklanınca (VisualControl). |
Kod örnekleri
Card'ın asıl API yüzeyi verisidir; en değerli kullanım, kartları koddan üretmektir. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir.
Kartları koddan üretme (Form kodu, C#, sunucu)
Items listesine CardItem ekleyerek kartları döngüyle oluşturabilirsiniz:
using Bimser.CSP.FormControls.Controls.CardControl;
var kartlar = new List<CardItem>();
foreach (var kayit in kayitlar)
{
var kart = new CardItem
{
Key = kayit.Id.ToString(),
Title = kayit.Ad,
Values = new List<CardValue>
{
new CardValue { Caption = "Departman", Value = kayit.Departman },
new CardValue { Caption = "Tutar", Value = kayit.Tutar.ToString("N2") }
}
};
kartlar.Add(kart);
}
Card1.Items = kartlar;
Alternatif olarak Data özelliğine satır sözlükleri atanabilir; bu durumda hangi alanın başlık, hangilerinin değer satırı olacağını Title Expr ve Value Exprs belirler:
Card1.Data = new List<Dictionary<string, object>>
{
new Dictionary<string, object> { ["Ad"] = "Ahmet Yılmaz", ["Departman"] = "Satınalma" },
new Dictionary<string, object> { ["Ad"] = "Ayşe Demir", ["Departman"] = "Finans" }
};
Görünürlük, aktiflik ve yüklenme (Form kodu, C#, sunucu)
// Görünürlük ve aktiflik
Card1.Visible = true;
Card1.Enabled = false;
// Yüklenme göstergesi (uzun süren veri çekme sırasında)
Card1.ShowLoading();
// ... veriyi hazırla ...
Card1.Items = kartlar;
Card1.HideLoading();
Akış (Flow) kodu (C#, sunucu)
Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz:
// Görünürlük ve aktiflik
Document1.Controls["Card1"].Visible = true;
Document1.Controls["Card1"].Enabled = false;
İstemci kodu (TypeScript, tarayıcı)
İstemci tarafında nesnelere this. ile erişilir ve özellik adları küçük harfle yazılır:
this.Card1.visible = true;
this.Card1.enabled = false;
Kart içeriğini tasarım anında Data Source + Title Expr / Value Exprs ile kurmak çoğu durumda en sade yoldur. Ancak kartları koddan üretmek de tam olarak desteklenir: Items (List<CardItem>) ve Data (List<Dictionary<String, Object>>) yazılabilir özelliklerdir. Sabit, sorguya dayanan listeler için veri kaynağını; koşullu ya da hesaplanarak oluşan listeler için koddan beslemeyi tercih edin.
İpuçları
- Card görsel bir listeleme nesnesidir; tek bir skaler değeri olmadığı için
Requiredgibi doğrulama özellikleri yoktur. Doğrulamayı, kartı besleyen kayıtların geldiği alanlarda yapın. - Kartların yan yana mı yoksa alt alta mı dizileceğini
Wrapper Direction(Horizontal/Vertical) ile ayarlarsınız. - Uzun süren veri çekme işlemlerinde
ShowLoading()/HideLoading()ile kullanıcıya bekleme göstergesi sunun. - Kartlara sağ tık menüsü bağlamak için
Context Menu Keyile menüyü,Context Menu Targetile hedefi (Container/Row/Column) ayarlayın. - Çok sayıda kayıt ve filtreleme gerektiğinde Card yerine bir tablo (Grid) nesnesi tercih edin.
Tüm tasarımcı özellikleri (tam liste)
General: Name, ControlId
Data Source: Data, Data Source, Data Source Type, Items
Behavior: Title Expr (TitleExpr), Value Exprs (ValueExprs), Wrapper Direction (WrapperDirection: Horizontal, Vertical)
Appearance: Title, Caption, Style, Container Style, Custom Class Name, Visible, Client Visible, Enabled, Client Enabled, Default Enabled, Default Client Enabled, Loading
Context Menu: Context Menu Key, Context Menu Column Key, Context Menu Target (ContextMenuTarget: Container, None, Row, Column)
Metotlar: Show, Hide, ShowLoading, HideLoading, ToggleLoading, ScrollTo, FireClick
Olaylar (Server, C#): OnInit, OnLoad, OnPreRender, OnRender, OnPropertyChanging, OnPropertyChanged, OnClick, OnDoubleClick