RadioList
Kullanıcının önceden tanımlı seçenekler arasından tek bir tanesini işaretlediği nesnedir. Tüm seçenekler ekranda radyo düğmesi olarak yan yana ya da alt alta görünür; kullanıcı birini seçtiğinde diğeri otomatik olarak boşalır.
Değer tipi: object
Ne zaman kullanılır?
Seçenek sayısı az (genelde 2-5) ve hepsinin aynı anda görünmesi istendiğinde idealdir: cinsiyet, evet/hayır, öncelik (Düşük / Orta / Yüksek) gibi alanlar. Seçenek çok ya da yerden tasarruf gerekiyorsa ComboBox, birden fazla seçim gerekiyorsa CheckBoxList daha uygundur.
Tasarımcı özellikleri
Bir RadioList seçildiğinde Özellik Görüntüleyici sekmelere ayrılır.
General
| Özellik | Açıklama |
|---|---|
Name | Nesnenin koddaki adı (ör. RadioList1). Koddan bu adla erişirsiniz. |
Field Name | Veritabanındaki alanın adı. |
Data Source
Seçeneklerin nereden geldiğini belirleyen sekmedir. Sabit liste girebilir ya da bir veri kaynağına bağlayabilirsiniz.
| Özellik | Açıklama |
|---|---|
Items | Tasarımcıdan elle girilen sabit seçenek listesi (metin / değer çiftleri). |
Data Source | Seçeneklerin geleceği veri kaynağı (ör. .mssqlds sorgusu). |
Data Source Type | Veri kaynağının türü (statik liste, veri kaynağı vb.). |
Data | Seçenekleri koddan vermek için kullanılan satır listesi. |
Selected Values | Seçili seçeneklerin değer listesi. |
Selected Item Values | Seçili öğelerin ham değerleri. |
Text Separator | Birden çok metin gösterilirken araya konan ayraç. |
Value Separator | Birden çok değer birleştirilirken araya konan ayraç. |
Behavior
| Özellik | Açıklama |
|---|---|
Required | Alanı zorunlu yapar; seçim yapılmazsa form kaydedilmez. |
ReadOnly | Alanı salt okunur yapar; kullanıcı seçimi değiştiremez. |
AllowClear | Yapılan seçimin temizlenebilmesine (boşa alınmasına) izin verir. |
ButtonType | Radyo düğmelerinin görünüm tipi (klasik düğme ya da buton kümesi). |
Direction | Seçeneklerin diziliş yönü: yatay ya da dikey. |
ShowSearch | Seçenekler arasında arama kutusu gösterir. |
SelectedItem | O an seçili olan öğe. |
ValueType | Saklanan değerin temel tipi (metin, sayı, tarih). |
DateValueFormat | Değer tarih ise kullanılacak tarih biçimi. |
DecimalValuePrecision | Değer ondalık ise basamak hassasiyeti. |
TabIndex | Tab tuşuyla geçiş sırasını belirler. |
Appearance
| Özellik | Açıklama |
|---|---|
Visible / Client Visible | Nesnenin görünürlüğü. |
Enabled / Client Enabled | Nesnenin aktif olup olmadığı. |
Placeholder | Seçim yapılmadan önce görünen ipucu yazısı. |
Title | Nesnenin başlığı (çok dilli olabilir). |
Text | Seçili öğenin görünen metni. |
Olaylar
Bir nesne açılırken olaylar belirli bir sırayla tetiklenir; kullanıcı seçim yapınca da ayrı olaylar çalışır. Doğru kodu doğru olaya yazmak işinizi kolaylaştırır.
Açılış sırası: OnInit → OnLoad → OnDataLoad → OnPreRender → OnRender
Kullanıcı seçince: OnValueChanging → OnValueChanged
Olaylar iki tarafta çalışabilir: sunucu olayları C# kodunda, istemci olayları tarayıcıdaki TypeScript kodunda. RadioList'in iki tarafta sunduğu olaylar farklıdır.
Sunucu olayları (Server)
| Olay | Ne zaman çalışır |
|---|---|
OnInit | Form açılırken nesne oluşturulduğunda, en başta. |
OnLoad | OnInit'in hemen ardından, nesne yüklenince. |
OnRender | Nesne ekrana çizilirken. |
OnValueChanging | Seçim değişmeden hemen önce (iptal edilebilir). |
OnValueChanged | Kullanıcı seçim yapıp değer kesinleştiğinde. En sık kullanılan olaydır. |
OnTextChanging | Görünen metin değişmeden hemen önce. |
OnTextChanged | Görünen metin değiştikten hemen sonra. |
OnValidating | Alan doğrulanırken (geçerlilik kontrolü). |
İstemci olayları (Client)
Sunucudaki olaylara ek olarak tarayıcı tarafında şunlar da vardır:
| Olay | Ne zaman çalışır |
|---|---|
OnDataLoad | Seçeneklerin verisi yüklendiğinde. |
OnPreRender | Nesne ekrana çizilmeden hemen önce. |
OnClick / OnDoubleClick | Nesneye tıklanınca / çift tıklanınca. |
OnPropertyChanging / OnPropertyChanged | Bir özellik kodla değiştirilmeden önce / sonra. |
OnValueChanging olayının parametresi (args TS, e C#) şunları taşır:
newValue/NewValue— seçilmek istenen yeni değeroldValue/OldValue— önceki değercancel/Cancel—trueyapılırsa değişiklik iptal edilir (yalnızcaChangingolaylarında)
Changed olaylarında cancel yoktur (değişiklik artık gerçekleşmiştir).
Kod örnekleri
Bir RadioList'e üç yerden erişebilirsiniz. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir.
Form kodu (C#, sunucu)
Form kodunda nesneye doğrudan adıyla erişirsiniz. RadioList'in değeri object tipindedir:
// Oku
var secilen = RadioList1.Value;
// Yaz (seçeneğin değeriyle)
RadioList1.Value = "Yuksek";
Akış (Flow) kodu (C#, sunucu)
Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz:
// Oku
var secilen = Document1.Controls["RadioList1"].Value;
// Yaz
Document1.Controls["RadioList1"].Value = "Yuksek";
İstemci kodu (TypeScript, tarayıcı)
İstemci tarafında nesnelere this. ile erişilir ve özellik adları küçük harfle yazılır (value, text):
// Oku
const secilen = this.RadioList1.value;
// Yaz
this.RadioList1.value = "Yuksek";
.Value seçeneğin saklanan değeridir (ör. "Yuksek"), .Text ise kullanıcının gördüğü metindir (ör. "Yüksek Öncelik"). Veritabanı sorgularında ve karşılaştırmalarda her zaman .Value kullanın.
Örnek: seçime göre doğrulama (OnValueChanging)
OnValueChanging seçim değişmeden hemen önce çalışır; istemediğiniz bir seçeneği burada iptal edebilirsiniz. Aşağıdaki örnekte "Iptal" seçilmesi engellenir.
İstemci (TypeScript):
async RadioList1_OnValueChanging(args: Controls.EventArgs.IPropertyChangingEventArgs<any>) {
if (args.newValue == "Iptal") {
args.cancel = true; // Seçim değişimini iptal eder
this.showMessage("Uyarı", "Bu seçenek seçilemez.", "Validation");
}
}
Sunucu (C#):
void RadioList1_OnValueChanging(object sender, PropertyChangingEventArgs<object> e)
{
if (e.NewValue?.ToString() == "Iptal")
{
e.Cancel = true;
ShowMessage("Uyarı", "Bu seçenek seçilemez.",
Bimser.CSP.FormControls.RuleManager.AlertType.Validation);
}
}
İpuçları
- Seçenekleri sabitlemek için
Items, dinamik liste içinData Sourcekullanın; ikisini aynı anda kullanmayın. - Seçenek sayısı 5'i aşıyorsa veya yer darsa RadioList yerine ComboBox tercih edin.
Directionözelliğiyle seçenekleri dar formlarda dikey, geniş formlarda yatay dizebilirsiniz.AllowClearaçıkken kullanıcı seçimi tümüyle boşa alabilir; zorunlu alanlarda bunu kapalı tutun.
Tüm tasarımcı özellikleri (tam liste)
General: Name, Field Name
Data Source: Items, Data, Data Source, Data Source Type, Selected Values, Selected Item Values, Text Separator, Value Separator
Behavior: Required, ReadOnly, AllowClear, ButtonType, Direction, ShowSearch, SelectedItem, ValueType, DateValueFormat, DecimalValuePrecision, TabIndex
Appearance: Visible, Client Visible, Enabled, Client Enabled, Placeholder, Title, Text, Value
Olaylar (Client): OnInit, OnLoad, OnPreRender, OnRender, OnPropertyChanging, OnPropertyChanged, OnClick, OnDoubleClick, OnDataLoad, OnValueChanging, OnValueChanged, OnTextChanging, OnTextChanged, OnValidating
Olaylar (Server): OnInit, OnLoad, OnRender, OnValueChanging, OnValueChanged, OnTextChanging, OnTextChanged, OnValidating