RefreshOptionsAction

Top  Previous  Next

ROA_icon
 
RefreshOptionsAction Ajax kütüphane elemanı ile HTML SELECT elemanları sayfa yenilenmeden dinamik olarak veri kaynağından doldurulabilir.

Bakın RefreshOptionsProcess

RefreshOptionsAction

Özellikler

Veri Kaynağı Adı (dataSource) (MScript kullanılabilir)

Bir Data Source elemanı (örnek: RelDBQueryDataSource) ile tanımlanmış olan ve yenilenecek alanlar için veri sağlayacak olan kaynağın adı. "DataSource Listesi" penceresinden seçilebilir.

Seçenek Düğümü (optionNode) (MScript kullanılabilir)

Seçenek metni olarak kullanılacak olan veri düğümünün adıdır. Örneğin yukarıdaki RefreshOptionsAction tanımlamasında veri kaynağından dönen kayıtlarda yer alan AD alanının değeri seçenek olarak karma kutuya dolduracaktır.

Değer Düğümü (valueNode)

Seçenek değeri olarak kullanılacak olan veri düğümü adıdır.

Değeri Şifrele (encryptTheValue)

Eğer bu özellik true olarak atanırsa "Değer Düğümü" özelliğinde belirtilen veri düğümünün değeri şifrelenir.

Hedef Eleman Kimliği (targetElement)

Nitelik değerleri (option, value) yenilenecek olan HTML SELECT elemanının HTML kimliği yazılır. Karma Kutu elemanları "ComboBox Listesi" penceresinden seçilebilir.

Sabit Seçenek Miktarı (staticOptionsQty )

Yenileme sırasında dokunulmaması gereken seçeneklerin miktarı.

İstek Parametreleri (requestParams)

Veri kaynağı sorgusunda kullanılan parametrelerdir. Bu tanımlamayı yaparken çağrının hangi elemandan yapılacağı dikkate alınmalıdır. Örneğin değer olarak 'ID=' + this.value verildiğinde, this, olay prosedürü içinden çağrının yapıldığı eleman nesnesini temsil eder.

Meşgul Resmi (busyImage)

Sayfaya yerleştirilen BusyImage elemanının HTML Kimliğine verilen değer yazılmalıdır. BusyImage elemanı sayfaya ilk yerleştirildiğinde "BI1" html kimlik değeri varsayılan olarak atanmıştır. "Meşgul Resmi" özelliği de "BusyImage Listesi" penceresinden seçilebilir.

Geri Çağrım Fonksiyonu (callbackFunc)

Bu özellikte RefreshOptionsAction çalıştırıldıktan sonra, ya da diğer bir deyişle hedef html SELECT elemanın seçenekleri yenilendikten sonra çağrılması istenen fonksiyonun adı yazılır. Bu parametre zorunlu değildir.

Kullanıcı Verisi (userData)

Kullanıcı verisi parametrelerinde bir veri nesnesi atanmış ise nesne geri çağrım fonksiyonuna iletilecektir. "Geri Çağrım Fonksiyonu" ve "Kullanıcı Verisi" parametreleri yenileme işleminden sonra özel işlemler yapabilme amacıyla kullanılır.

Hata Kotarıcısı (errorHandler)

Sistem tarafından yapılan yenileme sonucunun başarısız olması durumuna karşın "Hata Kotarıcısı" tanımlanırsa, bu fonksiyon; sistem mesaj vermeden önce çağrılacaktır.

 

 

RefreshOptionsAction Çağırma Yöntemleri

RefreshOptionsAction elemanını kullanıp özelliklerini belirledikten sonra RefreshOptionsAction'ı harekete geçirmenin iki yöntemi vardır.

 

Dinamik Çağrı

Sayfaya yerleştirilmiş olan bir RefreshOptionsAction elemanı üzerinde fare ile sağ tıklandığında açılan menüden " Panoya Kopyala 'Dinamik Çağrı Tanımı' " seçildiğinde, dinamik çağrı tanımı Windows panosuna kopyalanır. Bu çağrı tanımı daha sonra elemanların olay prosedürleri içine veya Script elemanlarının  "Gömülü Script" özelliği içine yapıştırılabilir.

 

Örnek:
 

%vof(/myRefreshOptionsAction/jscall)

 

Dinamik çağrı, bir derleme zamanı fonksiyonu sayesinde gerçekleştirilir. Bu nedenle RefreshFieldsAction elemanının özelliklerinde yapılan değişiklikler sonuca yansıyacaktır.

 

Fonksiyon Çağrısı

Sayfaya yerleştirilmiş olan bir RefreshOptionsAction elemanının gerekli tüm özellikleri belirlendikten sonra, üzerine fare ile sağ tıklandığında açılan menüden "Panoya Kopyala  'Javascript Fonksiyon Çağrısı' " seçilirse, AjaxMgr.refreshOptions() metod çağrısı tüm parametreleri ile oluşturulup Windows panosuna kopyalanır.

 

Panoya kopyalanan tanım daha sonra elemanların olay prosedürleri içine veya Script elemanlarının  "Gömülü Script" özelliği içine yapıştırılabilir.

 

Örnek:

 

 

AjaxMgr.refreshOptions({

 

  actionName        : 'myRefreshOptionsAction'

  ,optionField      : 'AD'

  ,valueField       : 'NO'

  ,targetElement    : 'Sehir_ComboBox'

  ,staticOptionsQty : 1

  ,requestParams    : {ULKE_NO:this.value}

  ,busyImage        : 'BI1'

  ,callbackFunc     : mesajGoster

  ,userData         : {mesaj:'Seçenekler Güncellendi.'}

  ,errorHandler     : hataFonksiyonum

 

}) 

 

 

Önemli: "Dinamik Çağrı" nın aksine, tanımın panodan alınıp yapıştırılarak kullanılması sonrasında, RefreshOptionsAction elemanı özelliklerinde yapılan değişiklikler etkili olmayacaktır.

 

Örnek

İki karma kutumuzun olduğunu var sayalım; Ulkeler ve Sehirler. Ulkeler karma kutusundan bir ülke seçildiğinde, seçilen ülkenin şehirlerini gösterecek şekilde Sehirler karma kutusunun seçeneklerinin tazelenmesini istiyoruz. Veri tabanımızda aşağıdaki gibi iki tablo olduğunu var sayalım:

'ulkeler' Tablosu:

NO       AD

-------  ----------

1        ALMANYA

2        BELÇİKA

3        TÜRKİYE

 

'sehirler' Tablosu:

NO    ULKE_NO     AD

----- ----------  ------------

1     1           MÜNİH

2     1           STUTTGART

3     1           BERLİN 

4     2           BRÜKSEL

5     2           ANVERS

6     2           DEN HAAG

7     3           İSTANBUL

8     3           ANKARA

9     3           İZMİR

 

 

Adımlar:

 

1.Ulkeler karma kutusunu AD seçeneği ve NO değeri ile veri tabanının ulkeler tablosundaki kayıtları ile doldurun.
2.Sehirler karma kutusunun Html Kimliği özelliğine “sehirler_kutusu_id” değerini atayalım.
3.sehirler adında bir veri kaynağı oluşturalım. Sayfaya bir RelDBQueryDataSource yerleştirip özelliklerini aşağıdaki gibi belirleyiniz.

Ad    : sehirler

Sorgu : SELECT NO, AD, KISA_AD FROM sehirler WHERE ULKE_NO = @vof(ULKE_NO)

 

4."Ajax > Actions > RefreshOptionsAction" kütüphane elemanını sayfaya yerleştirin ve özelliklerini aşağıdaki gibi belirleyin.

Ad: SehirleriYenile

RefreshOptionsActionProps

5.SehirleriYenile isimli RefreshOptionsAction elemanını seçip üzerinde sağ tıklayarak açılan menüden "Panoya Kopyala 'Dinamik Çağrı Tanımı'" seçeneğini seçin.
6.Panoda (clipboard) saklı duran dinamik çağrı tanımını Ulkeler karma kutusunun Değişince olayına yapıştırınız. %vof(/SehirleriYenile/jscall)

Not: Ulkeler karma kutusunun "Olaylar | Değişince" özelliğine atanan %vof(/SehirleriYenile/jscall) tanımı sayfa derlendikten sonra aşağıdaki koda dönüşecektir.

 

 

AjaxMgr.refreshOptions({

 

  actionName        : 'SehirleriYenile'

  ,optionField      : 'AD'

  ,valueField       : 'NO'

  ,targetElement    : 'sehirler_kutusu_id'

  ,staticOptionsQty : 1

  ,requestParams    : '{ULKE_NO:this.value}'

 

}) 

 

 

Seçili değeri belirlemek

Karma kutunun seçenekleri yenilendikten sonra seçili değerini belirlemek için, aşağıdaki örnekte olduğu gibi, bir geri çağrım fonksiyonu tanımlanabilir ve çağrılabilir.

 

function YenilemedenSonra(mpar) { // mpar: MultiPartAjaxResponse

  kisaAd.value = mpar.getResponse().getResponseRecord(0).getFieldValue("KISA_AD");

}

 

 

 

AjaxMgr.refreshOptions({

 

  actionName        : 'SehirleriYenile'

  ,optionField      : 'AD'

  ,valueField       : 'NO'

  ,targetElement    : 'sehirler_kutusu_id'

  ,staticOptionsQty : 1

  ,requestParams    : '{ULKE_NO:this.value}'

  ,callbackFunc     : YenilemedenSonra

 

})