Skip to main content

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

ÖzellikAçıklama
NameNesnenin koddaki adı (ör. Iframe1). Koddan bu adla erişirsiniz.

Behavior

ÖzellikAçıklama
UrlGömülecek sayfanın adresi. Iframe bu adresteki sayfayı gösterir.
HeightIframe penceresinin yüksekliği (piksel).
TargetNameIframe için hedef ad (target). Sayfa içi yönlendirmelerde bu adı hedef olarak kullanabilirsiniz.
FillFormAçık olduğunda iframe, formdaki boş alanı dolduracak biçimde genişler.

Appearance

ÖzellikAçıklama
Visible / Client VisibleNesnenin görünürlüğü. Client Visible yalnızca tarayıcı tarafında etkindir.
Enabled / Client EnabledNesnenin aktif olup olmadığı.
TitleNesnenin 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ı: OnInitOnLoadOnDataLoadOnPreRenderOnRender

Olaylar iki tarafta çalışabilir: sunucu olayları C# kodunda, istemci olayları tarayıcıdaki TypeScript kodunda.

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.

İ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.

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;
Adres çalışmıyorsa

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.
  • FillForm açıkken Height değ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