DOMElement
Forma ham HTML/DOM içeriği yerleştirmek için kullanılan görsel bir kapsayıcı nesnedir. Standart nesnelerin karşılamadığı özel bir görünüm ya da düzeni doğrudan HTML ile oluşturmak istediğinizde işe yarar.
Bu bir kapsayıcı / görsel nesnedir; veri tutmaz. Bu yüzden veritabanı alanı, zorunluluk ya da değer doğrulama gibi davranışları yoktur. İçeriğin kendisi tasarım anında tanımlanır; nesne çalışma anında ekranda gösterilir.
Ne zaman kullanılır?
Hazır nesnelerle çıkamadığınız özel bir HTML bloğu, gömülü bir görsel düzen ya da kendi biçimlendirmenizi forma eklemek istediğinizde kullanın. Sadece düz yazı göstermek için Label, tıklanabilir bir alan için Button daha basittir. DOMElement'i gerçekten ham HTML kontrolü gerektiğinde tercih edin.
Boş bir yer tutucu DOM düğümü gerekiyorsa, DOMElement'in boş varyantı olan EmptyDOMNode nesnesini kullanabilirsiniz.
Değer tipi
Bu nesnenin bir değeri yoktur. DOMElement sadece görsel bir kapsayıcıdır; Value veya Text ile okunup yazılmaz. Koddan görünürlüğünü, aktifliğini, başlığını, CSS sınıfını, stilini ve yükleniyor (loading) durumunu yönetebilirsiniz.
Tasarımcı özellikleri
Bir DOMElement seçildiğinde Özellik Görüntüleyici sekmelere ayrılır. Bu nesnenin etiketi, veri kaynağı ve değer davranışı olmadığından temel, görünüm ve stil özellikleri bulunur. Aşağıdaki tüm özellikler VisualControl taban nesnesinden gelir ve API dökümünde doğrulanmıştır.
General
| Özellik | Açıklama |
|---|---|
Name | Nesnenin koddaki adı (ör. DOMElement1). Koddan bu adla erişirsiniz. |
ControlId | Nesnenin istemci tarafındaki kimliği (String). |
Appearance
| Özellik | Tip | Açıklama |
|---|---|---|
Visible | Boolean | Nesnenin sunucu tarafında görünürlüğü. |
Client Visible | Boolean | Nesnenin sadece tarayıcı tarafındaki görünürlüğü (ClientVisible). |
Enabled | Boolean | Nesnenin sunucu tarafında aktif olup olmadığı. |
Client Enabled | Boolean | Nesnenin sadece tarayıcı tarafında aktif olup olmadığı (ClientEnabled). |
Default Enabled | Boolean | Enabled'ın başlangıç (varsayılan) değeri (DefaultEnabled). |
Default Client Enabled | Boolean | ClientEnabled'ın başlangıç (varsayılan) değeri (DefaultClientEnabled). |
Title | MultiLanguageText | Nesnenin başlığı (çok dilli); genelde ipucu olarak görünür. |
Caption | ControlCaption | Nesnenin başlık bloğu (çok dilli metin, font ve hizalama ayarları). |
Loading | Boolean | Nesnenin üzerinde yükleniyor (loading) göstergesi olup olmadığı. |
Style
| Özellik | Tip | Açıklama |
|---|---|---|
Custom Class Name | String | Gömülü HTML'e CSS sınıfı eklemenin yoludur (CustomClassName). DOMElement'e özgü tek stil kancasıdır. |
Style | Style | Nesnenin kendi satır içi stili. |
Container Style | Style | Nesneyi saran hücrenin stili (ContainerStyle). |
Context Menu
| Özellik | Tip | Açıklama |
|---|---|---|
Context Menu Key | String | Nesneye bağlanacak sağ tık menüsünün anahtarı (ContextMenuKey). |
Context Menu Column Key | String | İlgili menünün sütun anahtarı (ContextMenuColumnKey). |
Context Menu Target | ContextMenuTarget | Sağ tık menüsünün hedefi (ContextMenuTarget). |
Olaylar
DOMElement, tasarımcının formda bağlayabileceği kendi olaylarını adı belli ayrı üyeler olarak değil, genel ServerEvents ve ClientEvents (List<EventItem>) listeleri üzerinden tutar. Tasarımcı arayüzünde bu nesneye özgü olarak listelenen olaylar, VisualControl üzerinden gelen tıklama girişleridir; harvest çıktısı bu özel üye listesinde events: [] döndürür.
OnInit / OnLoad / OnPreRender / OnRender çerçeve (framework) yaşam döngüsü kancalarıdır ve BaseControl taban nesnesinden miras alınır; bu yüzden her nesne gibi bu nesnede de bulunurlar. Bunlar nesnenin kendi tasarımcı olayları değil, tüm nesnelerin paylaştığı genel yaşam döngüsü adımlarıdır. OnDataLoad ise yalnızca veri bağlı (DataBoundControl) nesnelerde tanımlıdır; DOMElement veri bağlı bir nesne olmadığından bu nesnede bulunmaz. DOMElement görsel bir kapsayıcı olduğundan değer (OnValueChanged vb.) olayı da fırlatmaz.
Doğrulanabilir etkileşim
| Üye | Açıklama |
|---|---|
OnClick(object sender, MouseEventArgs e) | Nesneye tıklanınca çalışan, VisualControl üzerinden gelen sunucu girişi. |
OnDoubleClick(object sender, MouseEventArgs e) | Nesneye çift tıklanınca çalışan giriş. |
Tıklama davranışı, tüm nesnelerin paylaştığı EventItem listesi (ServerEvents / ClientEvents) üzerinden bağlanır.
Çalışma anı API'si (Methods)
DOMElement, VisualControl'den gelen şu çalışma anı yöntemlerini sunar. Bunlar görünürlük ve yükleniyor durumunu yönetmenin temiz yoludur:
| Yöntem | Açıklama |
|---|---|
Show() | Nesneyi gösterir (Visible = true yerine daha okunaklı). |
Hide() | Nesneyi gizler (Visible = false yerine daha okunaklı). |
ShowLoading() | Nesnenin üzerinde yükleniyor göstergesini açar (Loading). |
HideLoading() | Yükleniyor göstergesini kapatır. |
ToggleLoading() | Yükleniyor durumunu tersine çevirir. |
ScrollTo() | Nesneyi görünür alana kaydırır. |
FireClick() | Nesnenin tıklama davranışını koddan tetikler. |
Yukarıdaki yöntemler API dökümünde mevcuttur ve derlenir; çalışma anı davranışları kaynaklarda ayrıca doğrulanmamıştır (dump-only: compiles, runtime-unverified).
Kod örnekleri
DOMElement'in değeri olmadığı için kodla görünürlüğünü, stilini ve yükleniyor durumunu yönetirsiniz. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir.
Form kodu (C#, sunucu)
Form kodunda nesneye doğrudan adıyla erişirsiniz:
// Göster / gizle (temiz yol)
DOMElement1.Show();
DOMElement1.Hide();
// Aktif / pasif
DOMElement1.Enabled = true;
// Gömülü HTML'e CSS sınıfı bağla (DOMElement'e özgü stil kancası)
DOMElement1.CustomClassName = "ozel-pano koyu-tema";
// Yükleniyor göstergesi
DOMElement1.ShowLoading();
DOMElement1.HideLoading();
Akış (Flow) kodu (C#, sunucu)
Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz:
// Göster / gizle
Document1.Controls["DOMElement1"].Visible = false;
// Aktif / pasif
Document1.Controls["DOMElement1"].Enabled = true;
// CSS sınıfı ve yükleniyor durumu
Document1.Controls["DOMElement1"].CustomClassName = "vurgulu-blok";
Document1.Controls["DOMElement1"].Loading = true;
İstemci kodu (TypeScript, tarayıcı)
İstemci tarafında nesnelere this. ile erişilir ve özellik adları küçük harfle yazılır:
this.DOMElement1.visible = false;
this.DOMElement1.enabled = true;
İstemci tarafındaki küçük harfli özellik yüzeyi (visible, enabled vb.) sunucu DLL dökümünden doğrulanamaz; döküm yalnızca C# adlarını (Visible, Enabled) içerir. Yukarıdaki TypeScript kullanımı genel Synergy istemci sözleşmesine dayanır.
DOMElement veri tutmadığı için .Value ya da .Text aramayın. Bu nesneyi koddan Show() / Hide(), Visible / ClientVisible, Enabled / ClientEnabled, CustomClassName, Style ve Loading ile yönetirsiniz; gömülü HTML içeriğini tasarım anında belirlersiniz.
İpuçları
- DOMElement görsel bir kapsayıcıdır; zorunlu alan, veri doğrulama gibi işlemler için değer tutan nesneleri (TextBox gibi) kullanın.
- Forma sadece düz yazı eklemek istiyorsanız DOMElement yerine Label daha hafiftir.
- Gömülü HTML'inize CSS uygulamanın doğal yolu
CustomClassName'dir; nesneye özgü tek stil kancası budur. - Görünürlüğü kodla değiştirirken
Visible = true/falseyerineShow()/Hide()daha okunaklıdır. Sadece tarayıcı tarafında gizlemek içinClientVisiblekullanın. - Bir bloğu hazırlarken veri beklerken
ShowLoading()ile yükleniyor göstergesi açıp, hazır oluncaHideLoading()ile kapatabilirsiniz.
Tüm tasarımcı özellikleri (tam liste)
General: Name, ControlId
Appearance: Visible, ClientVisible, Enabled, ClientEnabled, DefaultEnabled, DefaultClientEnabled, Title (MultiLanguageText), Caption (ControlCaption), Loading
Style: CustomClassName, Style, ContainerStyle
Context Menu: ContextMenuKey, ContextMenuColumnKey, ContextMenuTarget
Yöntemler (VisualControl): Show(), Hide(), ShowLoading(), HideLoading(), ToggleLoading(), ScrollTo(), FireClick(), OnClick(object, MouseEventArgs), OnDoubleClick(object, MouseEventArgs)
Olaylar: Adlandırılmış olay üyesi yoktur. Olaylar genel ServerEvents / ClientEvents (List<EventItem>) listeleri üzerinden tutulur.