Skip to main content

Radio

Aynı gruptaki seçeneklerden yalnızca birinin işaretlenebildiği radyo düğmesi nesnesidir. Birden çok Radio aynı GroupName ile bir grup oluşturur; kullanıcı birini seçince grubun diğerleri otomatik olarak boşalır.

Değer tipi: bool

Ne zaman kullanılır?

Birbirini dışlayan az sayıda seçenek arasından tek bir seçim yaptırmak için idealdir: cinsiyet, evet/hayır, öncelik düzeyi. Tek bir açık/kapalı durumu için CheckBox, çok sayıda seçenek için ComboBox daha uygundur.

Tasarımcı özellikleri

Bir Radio seçildiğinde Özellik Görüntüleyici sekmelere ayrılır.

General

ÖzellikAçıklama
NameNesnenin koddaki adı (ör. Radio1). Koddan bu adla erişirsiniz.
Field NameVeritabanındaki alanın adı.

Label

Nesnenin yanındaki etiketi yönetir.

ÖzellikAçıklama
Caption / TextEtiketin yazısı (çok dilli olabilir).
PositionEtiketin yeri: solda (Left) veya üstte (Top).
Width / HeightEtiketin boyutu.
FontYazı tipi, kalın / italik / altı çizili.
Show ColonEtiketin sonuna iki nokta (:) ekler.
Horizontal Align / Vertical AlignEtiketin hizası.
VisibleEtiketi gösterir veya gizler.

Behavior

ÖzellikAçıklama
GroupNameRadyo grubunun adı. Aynı GroupName değerine sahip nesneler tek bir grup oluşturur; gruptan yalnızca biri seçili olabilir.
ReadOnlyNesneyi salt okunur yapar; kullanıcı seçimi değiştiremez.
RequiredAlanı zorunlu yapar; gruptan biri seçilmeden form kaydedilmez.
Tab IndexTab tuşuyla geçiş sırasını belirler.

Appearance

ÖzellikAçıklama
Visible / Client VisibleNesnenin görünürlüğü.
Enabled / Client EnabledNesnenin aktif olup olmadığı.
ValueNesnenin işaretli olup olmadığı (true / false).
LabelNesnenin etiket yazısı (çok dilli).
TitleFareyle üzerine gelince çıkan ipucu yazısı (çok dilli).

Olaylar

Bir nesne açılırken olaylar belirli bir sırayla tetiklenir; kullanıcı seçimi değiştirince de ayrı olaylar çalışır. Doğru kodu doğru olaya yazmak için bu sırayı bilmek işinizi kolaylaştırır.

Açılış sırası: OnInitOnLoadOnDataLoadOnPreRenderOnRender

Kullanıcı seçim yapınca: OnValueChangingOnValueChanged

Olaylar iki tarafta çalışabilir: sunucu olayları C# kodunda, istemci olayları tarayıcıdaki TypeScript kodunda. Radio'nun iki tarafta sunduğu olaylar farklıdır.

Sunucu olayları (Server)

OlayNe zaman çalışır
OnInitForm açılırken nesne oluşturulduğunda, en başta.
OnLoadOnInit'in hemen ardından, nesne yüklenince.
OnRenderNesne ekrana çizilirken.
OnValidatingAlan doğrulanırken; geçersiz değeri burada engelleyebilirsiniz.
OnValueChangingSeçim değişmeden hemen önce (iptal edilebilir).
OnValueChangedKullanıcı seçimi değiştirip değer kesinleştiğinde. En sık kullanılan olaydır.

İstemci olayları (Client)

Sunucudaki olaylara ek olarak tarayıcı tarafında şunlar da vardır:

OlayNe zaman çalışır
OnDataLoadNesnenin verisi yüklendiğinde.
OnPreRenderNesne ekrana çizilmeden hemen önce.
OnClick / OnDoubleClickNesneye tıklanınca / çift tıklanınca.
OnPropertyChanging / OnPropertyChangedBir özellik kodla değiştirilmeden önce / sonra.
Olay parametreleri

OnValueChanging olayının parametresi (args TS, e C#) şunları taşır:

  • newValue / NewValue — seçilmek istenen yeni değer (bool)
  • oldValue / OldValue — önceki değer
  • cancel / Canceltrue yapılırsa değişiklik iptal edilir

OnValueChanged olayında cancel yoktur (değişiklik artık gerçekleşmiştir).

Kod örnekleri

Bir Radio'ya üç yerden erişebilirsiniz. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir. Radio'nun değeri bool tipindedir: işaretliyse true, değilse false.

Form kodu (C#, sunucu)

Form kodunda nesneye doğrudan adıyla erişirsiniz:

// Oku
bool secili = Radio1.Value;

// Yaz (işaretle)
Radio1.Value = true;

Akış (Flow) kodu (C#, sunucu)

Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz:

// Oku
bool secili = Document1.Controls["Radio1"].Value;

// Yaz (işaretle)
Document1.Controls["Radio1"].Value = true;

İstemci kodu (TypeScript, tarayıcı)

İstemci tarafında nesnelere this. ile erişilir ve özellik adları küçük harfle yazılır (value):

// Oku
const secili = this.Radio1.value;

// Yaz (işaretle)
this.Radio1.value = true;
Grup mantığı

Aynı GroupName değerine sahip Radio nesnelerinden yalnızca biri true olabilir. Birini kodla true yaptığınızda grubun diğer üyeleri otomatik olarak false olur; tek tek boşaltmanıza gerek kalmaz.

Örnek: seçime göre uyarı (OnValueChanging)

OnValueChanging seçim değişmeden hemen önce çalışır; istemediğiniz bir seçimi burada iptal edebilirsiniz. Aşağıdaki örnekte nesnenin işaretlenmesi engellenir.

İstemci (TypeScript):

async Radio1_OnValueChanging(args: Controls.EventArgs.IPropertyChangingEventArgs<boolean>) {
if (args.newValue == true) {
args.cancel = true; // Seçimi iptal eder
this.showMessage("Uyarı", "Bu seçenek şu an seçilemez.", "Validation");
}
}

Sunucu (C#):

void Radio1_OnValueChanging(object sender, PropertyChangingEventArgs<bool> e)
{
if (e.NewValue == true)
{
e.Cancel = true;
ShowMessage("Uyarı", "Bu seçenek şu an seçilemez.",
Bimser.CSP.FormControls.RuleManager.AlertType.Validation);
}
}

İpuçları

  • Birbirini dışlayan seçenekleri tek grupta toplamak için tüm nesnelere aynı GroupName değerini verin.
  • Kullanıcının bir seçim yapmasını zorunlu kılmak için gruptaki nesnelerde Required özelliğini açın.
  • Yalnızca tek bir açık/kapalı durumu kontrol ediyorsanız Radio yerine CheckBox kullanın.
Tüm tasarımcı özellikleri (tam liste)

General: Name, Field Name

Label: Caption, Text, Position, Left, Width, Height, Font (Bold / Italic / Underline), Ellipsis, Visible, Show Colon, Horizontal Align, Vertical Align, Mark Char, Mark Position

Behavior: GroupName, ReadOnly, Required, Tab Index

Appearance: Visible, Client Visible, Enabled, Client Enabled, Value, Label, Title

Olaylar (Client): OnInit, OnLoad, OnPreRender, OnRender, OnPropertyChanging, OnPropertyChanged, OnClick, OnDoubleClick, OnDataLoad, OnValidating, OnValueChanging, OnValueChanged

Olaylar (Server): OnInit, OnLoad, OnRender, OnValidating, OnValueChanging, OnValueChanged