Iframe
Form içine başka bir web sayfasını gömerek gösteren görsel nesnedir. Verdiğiniz adresteki sayfa, formun içinde bir pencere gibi açılır.
Bu nesnenin bir değeri yoktur. Veri tutmaz; yalnızca belirttiğiniz adresi ekranda gösterir.
Ne zaman kullanılır?
Form içinden bir dış sayfayı (rapor ekranı, harita, başka bir uygulamanın ekranı, yardım dökümanı) kullanıcıya göstermek istediğinizde kullanılır. Kullanıcı formdan çıkmadan o sayfayı görür. Sabit bir görsel için Image, Synergy raporu için ReportViewer daha uygundur.
Tasarımcı özellikleri
Bir Iframe seçildiğinde Özellik Görüntüleyici sekmelere ayrılır. Iframe görsel bir nesnedir, bu yüzden etiket ve veri kaynağı sekmeleri yoktur.
General
| Özellik | Açıklama |
|---|---|
Name | Nesnenin koddaki adı (ör. Iframe1). Koddan bu adla erişirsiniz. |
Behavior
| Özellik | Açıklama |
|---|---|
Url | Gömülecek sayfanın adresi. Iframe bu adresteki sayfayı gösterir. |
Height | Iframe penceresinin yüksekliği (piksel). |
TargetName | Iframe için hedef ad (target). Sayfa içi yönlendirmelerde bu adı hedef olarak kullanabilirsiniz. |
FillForm | Açık olduğunda iframe, formdaki boş alanı dolduracak biçimde genişler. |
Appearance
| Özellik | Açıklama |
|---|---|
Visible / Client Visible | Nesnenin görünürlüğü. Client Visible yalnızca tarayıcı tarafında etkindir. |
Enabled / Client Enabled | Nesnenin aktif olup olmadığı. |
Title | Nesnenin başlığı (çok dilli olabilir). |
Olaylar
Iframe görsel bir nesnedir; kendine ait bir değeri olmadığı için değer değişim olayları yoktur. Yalnızca açılış sırasındaki temel olaylar ve istemci tarafındaki genel etkileşim olayları çalışır.
Açılış sırası: OnInit → OnLoad → OnDataLoad → OnPreRender → OnRender
Olaylar iki tarafta çalışabilir: sunucu olayları C# kodunda, istemci olayları tarayıcıdaki TypeScript kodunda.
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. |
İstemci olayları (Client)
Sunucudaki olaylara ek olarak tarayıcı tarafında şunlar da vardır:
| Olay | Ne zaman çalışır |
|---|---|
OnDataLoad | Nesnenin 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. |
Kod örnekleri
Iframe'in değeri yoktur, bu yüzden değer okuyup yazmazsınız. En çok yaptığınız işlem, gösterilen adresi (Url) kodla değiştirmek ve nesneyi gizleyip göstermektir. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir.
Form kodu (C#, sunucu)
Form kodunda nesneye doğrudan adıyla erişirsiniz:
// Gösterilen adresi değiştir
Iframe1.Url = "https://intranet.firma.com/rapor";
// Yüksekliği ayarla
Iframe1.Height = 600;
// Görünürlük
Iframe1.Visible = true;
Akış (Flow) kodu (C#, sunucu)
Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz:
// Gösterilen adresi değiştir
Document1.Controls["Iframe1"].Url = "https://intranet.firma.com/rapor";
// Görünürlük
Document1.Controls["Iframe1"].Visible = false;
İstemci kodu (TypeScript, tarayıcı)
İstemci tarafında nesnelere this. ile erişilir ve özellik adları küçük harfle yazılır:
// Gösterilen adresi değiştir
this.Iframe1.url = "https://intranet.firma.com/rapor";
// Görünürlük
this.Iframe1.visible = true;
Gömeceğiniz sayfanın sunucusu çoğu zaman başka sitelerde gösterilmeye izin vermez (X-Frame-Options). Iframe boş kalıyorsa sorun genellikle Synergy'de değil, gömülen sayfanın güvenlik ayarındadır. Mümkünse https adres kullanın; karışık (http + https) içerikte tarayıcı sayfayı engelleyebilir.
İpuçları
Urlözelliğini hem tasarımcıda sabit verebilir, hem de form/akış kodunda kullanıcıya ya da forma göre değiştirebilirsiniz.FillFormaçıkkenHeightdeğeri dikkate alınmaz; iframe boş alanı kendi doldurur.- Iframe'in bir değeri olmadığı için form alanına kaydedilmez. Sayfaya gösterilen adresi saklamak isterseniz ayrı bir TextBox alanında tutun.
Tüm tasarımcı özellikleri (tam liste)
General: Name
Behavior: Url, Height, TargetName, FillForm
Appearance: Visible, Client Visible, Enabled, Client Enabled, Title
Olaylar (Client): OnInit, OnLoad, OnPreRender, OnRender, OnDataLoad, OnPropertyChanging, OnPropertyChanged, OnClick, OnDoubleClick
Olaylar (Server): OnInit, OnLoad, OnRender