Skip to main content

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

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

Data Source

Seçeneklerin nereden geldiğini belirleyen sekmedir. Sabit liste girebilir ya da bir veri kaynağına bağlayabilirsiniz.

ÖzellikAçıklama
ItemsTasarımcıdan elle girilen sabit seçenek listesi (metin / değer çiftleri).
Data SourceSeçeneklerin geleceği veri kaynağı (ör. .mssqlds sorgusu).
Data Source TypeVeri kaynağının türü (statik liste, veri kaynağı vb.).
DataSeçenekleri koddan vermek için kullanılan satır listesi.
Selected ValuesSeçili seçeneklerin değer listesi.
Selected Item ValuesSeçili öğelerin ham değerleri.
Text SeparatorBirden çok metin gösterilirken araya konan ayraç.
Value SeparatorBirden çok değer birleştirilirken araya konan ayraç.

Behavior

ÖzellikAçıklama
RequiredAlanı zorunlu yapar; seçim yapılmazsa form kaydedilmez.
ReadOnlyAlanı salt okunur yapar; kullanıcı seçimi değiştiremez.
AllowClearYapılan seçimin temizlenebilmesine (boşa alınmasına) izin verir.
ButtonTypeRadyo düğmelerinin görünüm tipi (klasik düğme ya da buton kümesi).
DirectionSeçeneklerin diziliş yönü: yatay ya da dikey.
ShowSearchSeçenekler arasında arama kutusu gösterir.
SelectedItemO an seçili olan öğe.
ValueTypeSaklanan değerin temel tipi (metin, sayı, tarih).
DateValueFormatDeğer tarih ise kullanılacak tarih biçimi.
DecimalValuePrecisionDeğer ondalık ise basamak hassasiyeti.
TabIndexTab tuşuyla geçiş sırasını belirler.

Appearance

ÖzellikAçıklama
Visible / Client VisibleNesnenin görünürlüğü.
Enabled / Client EnabledNesnenin aktif olup olmadığı.
PlaceholderSeçim yapılmadan önce görünen ipucu yazısı.
TitleNesnenin başlığı (çok dilli olabilir).
TextSeç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ı: OnInitOnLoadOnDataLoadOnPreRenderOnRender

Kullanıcı seçince: OnValueChangingOnValueChanged

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)

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.
OnValueChangingSeçim değişmeden hemen önce (iptal edilebilir).
OnValueChangedKullanıcı seçim yapıp değer kesinleştiğinde. En sık kullanılan olaydır.
OnTextChangingGörünen metin değişmeden hemen önce.
OnTextChangedGörünen metin değiştikten hemen sonra.
OnValidatingAlan doğrulanırken (geçerlilik kontrolü).

İstemci olayları (Client)

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

OlayNe zaman çalışır
OnDataLoadSeçeneklerin 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
  • oldValue / OldValue — önceki değer
  • cancel / Canceltrue yapılırsa değişiklik iptal edilir (yalnızca Changing olayları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";
Değer mi metin mi?

.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çin Data Source kullanı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.
  • AllowClear açı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