WebBrowser Post ComboBox Problemi;

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

WebBrowser Post ComboBox Problemi;

Mesaj gönderen G.Arkas »

Merhaba;

WebBrowser dan post ederken kullandığım sayfada 2 adet combobox var. Bu comboboxlar birbirine bağlantılı. Yani ilk kutudan yapılan seçim sonrası sayfa "yenilenip" sorgu çalıştırılıp sonrasında 2. kutunun içi doluyor. Burada ki problem ben post işlemi yaparken

Kod: Tümünü seç

EmbeddedWB1.OleObject.Document.GetElementByID('ctl00$content1$DropDownList1').Value:='1';
olarak combobox "item numarasını" veriyorum. Ama uygulama içinden bu işlemi yaparken ilk parametreyi verdiğimde sayfa tetiklenmiyor. Kod çalışıyor o satır numarasına ait veri geliyor ama sayfa yenilenmiyor. Dolayısıyla 2. kutu da istediğim seçimler gelmiyor. Kutu boş geldiği için benim sorgu patlıyor.

Bu işlemi nasıl yapabilirim acaba?

saygılarımla...
Resim
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: WebBrowser Post ComboBox Problemi;

Mesaj gönderen SimaWB »

Tam anlayamadım ama; combobox'ın onchange olayını fireEvent ile tetikleyebilirsin.

Kod: Tümünü seç

var
  cb: IHTMLElement;
  v: OleVariant;
begin
  cb := EmbeddedWB1.OleObject.Document.GetElementByID('ctl00$content1$DropDownList1');
  IHTMLSelectElement(cb).value := '1';
  IHTMLElement3(cb).FireEvent('onchange', v);
end;
gibi.
There's no place like 127.0.0.1
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: WebBrowser Post ComboBox Problemi;

Mesaj gönderen G.Arkas »

Hocam şurada bir hata aldım ama? Sanırım parametre değer döndürmüyor.

Kod: Tümünü seç

cb := EmbeddedWB1.OleObject.Document.GetElementByID('ctl00$content1$DropDownList1');
Resim
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: WebBrowser Post ComboBox Problemi;

Mesaj gönderen SimaWB »

EmbededWB hiç kullanmadım. TWebBrowser için çalışması lazım. Sadece değer ataması yapmadan ve FireEvent'i çağırmadan önce cb'yi kontrol etmek gerek diye düşünüyorum.

Kod: Tümünü seç

if cb <> nil then 
begin
  IHTMLSelectElement(cb).value := '1';
  IHTMLElement3(cb).FireEvent('onchange', v);
end;
Burada aynı mantığı Volkan Bey başarılı bir şekikde kullandığını belirtmiş.
There's no place like 127.0.0.1
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: WebBrowser Post ComboBox Problemi;

Mesaj gönderen G.Arkas »

@SimaWB çok teşekkür ederim hocam şimdi oldu.
Resim
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: WebBrowser Post ComboBox Problemi;

Mesaj gönderen Lord_Ares »

Bu hatayı nasıl düzelttiniz arkadaşlar bende denedim ama hatayı geçemedim. Aşağıdaki yapıda tarihleri seçebileceğim bir combobox var. Buraya option value deki değerleri atayıp onchange olayını tetiklemem lazım.

Kod: Tümünü seç

<form name="form" id="form">
							<select name="tarihList" id="sayisal-tarihList"
								onchange="tarihSecildi(this)">
								<!-- 
								<option>item1</option>
								<option>item2</option>
								<option>item3</option>
								<option>item4</option>
								<option>item5</option>
								 -->
								 <option value="20150620">20-06-2015</option>
								 <option value="20150613">13-06-2015</option>
							</select>


Şöyle kullandığımda Gerçekleşmemiş diye hata alarak program kırıldı.

Kod: Tümünü seç

 WebBrowser1.OleObject.Document.getElementByID('sayisal-tarihList').value('20150606').FireEvent('onchange' , v) ;
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: WebBrowser Post ComboBox Problemi;

Mesaj gönderen G.Arkas »

@SimaWB'nin verdiği kodu kullanabilirsin.
Resim
Cevapla