Yorumları: 228
Konuları: 51
Kayıt Tarihi: 08-05-2017
Rep Puanı: 462 Acemi
Merhaba
UniDBGrid içerisine (Ado ile) DB den çektiğim verileri getiriyorum. En sağ kolona da üzerinde EKLE olan bir image koydum.
ClientEvents/ExtEvents
Ext.data.Store.Load daki kodlar ile kolonları HTML olarak gösteriyorum.
'<tr>'+
'<td>'+
'<img src="B2B_Simge/EkleBtn.svg" type="image" style="width:50px;height:50px;margin:auto;cursor:pointer;" '+
'onClick="javascript:uAnaMenu.EkleBtnClick({0});"'+
'/>'+
'</td>'+
buradaki onClick olayını yakalayamıyorum. Nasıl yakalarım?
İyi Çalışmalar
Yorumları: 95
Konuları: 22
Kayıt Tarihi: 16-02-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 219 Acemi
Allah kolaylık versin. Unigui için destek almak çooook zor. 3 gündür bir sorunla uğraşıyorum. Henüz çözüm bulabilmiş değilim.
Yorumları: 172
Konuları: 16
Kayıt Tarihi: 10-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 5.340 Üstad
Merhaba , Client tarafında bir JavaScript etkileşimiyle sunucu tarafında işlem yapabilmek için UniGUI hazır olarak "AjaxCall" yapılarını sunuyor , bunun için bilgisayarınızda UniGUI kurulumuyla gelen Demo lar içinde ClientEvents-2 klasöründeki örneği incelerseniz bu konuda ki tüm mantığı anlarsınız.
iyi çalışmalar.
Yorumları: 228
Konuları: 51
Kayıt Tarihi: 08-05-2017
Rep Puanı: 462 Acemi
(20-10-2022, Saat: 09:09)vkamadan Adlı Kullanıcıdan Alıntı: Merhaba , Client tarafında bir JavaScript etkileşimiyle sunucu tarafında işlem yapabilmek için UniGUI hazır olarak "AjaxCall" yapılarını sunuyor , bunun için bilgisayarınızda UniGUI kurulumuyla gelen Demo lar içinde ClientEvents-2 klasöründeki örneği incelerseniz bu konuda ki tüm mantığı anlarsınız.
iyi çalışmalar.
Merhaba
O örnekleri inceledim. Orada bir nesne (UiPanel1) var ve nesne ajax olayları tetikliyor.
Ekrana getiridiğim alanları gridde listeliyorum, fakat DBGrid kolonlarının visible özelliğini false yapıyorum. Ekrana kolonları HML kodu ile farklı bir şekilde alan değerlerini alarak gösteriyorum. Kolon bilgileri HTML kodu ile oluştuğu için HTMLdeki onClick olayını yakalamam lazım.
veya oluyorsa HTML kodu içerisinde ajax kodunu tetikleyen birşeyler ekleyebilirmiyim?
İyi Çalışmalar
Yorumları: 172
Konuları: 16
Kayıt Tarihi: 10-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 5.340 Üstad
21-10-2022, Saat: 10:10
(Son Düzenleme: 21-10-2022, Saat: 10:12, Düzenleyen: vkamadan.
Sebep: hatalı yazım
)
(21-10-2022, Saat: 10:00)m_ekici Adlı Kullanıcıdan Alıntı: (20-10-2022, Saat: 09:09)vkamadan Adlı Kullanıcıdan Alıntı: Merhaba , Client tarafında bir JavaScript etkileşimiyle sunucu tarafında işlem yapabilmek için UniGUI hazır olarak "AjaxCall" yapılarını sunuyor , bunun için bilgisayarınızda UniGUI kurulumuyla gelen Demo lar içinde ClientEvents-2 klasöründeki örneği incelerseniz bu konuda ki tüm mantığı anlarsınız.
iyi çalışmalar.
Merhaba
O örnekleri inceledim. Orada bir nesne (UiPanel1) var ve nesne ajax olayları tetikliyor.
Ekrana getiridiğim alanları gridde listeliyorum, fakat DBGrid kolonlarının visible özelliğini false yapıyorum. Ekrana kolonları HML kodu ile farklı bir şekilde alan değerlerini alarak gösteriyorum. Kolon bilgileri HTML kodu ile oluştuğu için HTMLdeki onClick olayını yakalamam lazım.
veya oluyorsa HTML kodu içerisinde ajax kodunu tetikleyen birşeyler ekleyebilirmiyim?
İyi Çalışmalar
Merhaba , Aslında olayın felsefesi AjaxRequest in ilk parametresinde hangi unigui bileşeninin "OnAjaxEvent" inin tetikleneceğini beliryor olmanızdan geçiyor.
http://forums.unigui.com/index.php?/topi...hyperlink/ mesela buradaki örnekte TUniHTMLEditor üzerinden nasıl yapıldığını göstermiş, sizde bir UniDBGrid olduğuna göre eklediğim lilnkteki Ajax çağırısı JS kodunu aşağıdakine benzer şekilde düzenlemelisiniz.
GridHucresiString := '<a href="javascript:window.parent.ajaxRequest(window.parent.'+UniDBGrid1.JSName+', ''hrefClick'', [''hrefId=hrefId1''])">test</a>';
Ajax çağrısının kontrol edeceğini event bu durumda UniDBGrid1.OnAjaxEvent olmuş olacak kontrol isteği karşılayacak kodunuzu oraya yazacaksınız.
iyi çalışmalar.
Yorumları: 228
Konuları: 51
Kayıt Tarihi: 08-05-2017
Rep Puanı: 462 Acemi
(21-10-2022, Saat: 10:10)vkamadan Adlı Kullanıcıdan Alıntı: (21-10-2022, Saat: 10:00)m_ekici Adlı Kullanıcıdan Alıntı: Merhaba
O örnekleri inceledim. Orada bir nesne (UiPanel1) var ve nesne ajax olayları tetikliyor.
Ekrana getiridiğim alanları gridde listeliyorum, fakat DBGrid kolonlarının visible özelliğini false yapıyorum. Ekrana kolonları HML kodu ile farklı bir şekilde alan değerlerini alarak gösteriyorum. Kolon bilgileri HTML kodu ile oluştuğu için HTMLdeki onClick olayını yakalamam lazım.
veya oluyorsa HTML kodu içerisinde ajax kodunu tetikleyen birşeyler ekleyebilirmiyim?
İyi Çalışmalar
Merhaba , Aslında olayın felsefesi AjaxRequest in ilk parametresinde hangi unigui bileşeninin "OnAjaxEvent" inin tetikleneceğini beliryor olmanızdan geçiyor.
http://forums.unigui.com/index.php?/topi...hyperlink/ mesela buradaki örnekte TUniHTMLEditor üzerinden nasıl yapıldığını göstermiş, sizde bir UniDBGrid olduğuna göre eklediğim lilnkteki Ajax çağırısı JS kodunu aşağıdakine benzer şekilde düzenlemelisiniz.
GridHucresiString := '<a href="javascript:window.parent.ajaxRequest(window.parent.'+UniDBGrid1.JSName+', ''hrefClick'', [''hrefId=hrefId1''])">test</a>';
Ajax çağrısının kontrol edeceğini event bu durumda UniDBGrid1.OnAjaxEvent olmuş olacak kontrol isteği karşılayacak kodunuzu oraya yazacaksınız.
iyi çalışmalar.
Teşekkür ederim,
Gridle ilgili HTML kodu UniDbGrid'in ClientEvents, ExtEvents, [store].load bölümünde yazıyorum. Burada tek tırnağı bu şekilde kullandığımda missing ) after argument list hatası veriyor. (çift tırnakta hata vermiyor fakat çalışmıyor (herhangi bir parametre gelmiyor).
ajaxRequest ClientEvents, ExtEvents, [store].load da nasıl tetiklerim?
Yorumları: 172
Konuları: 16
Kayıt Tarihi: 10-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 5.340 Üstad
burada örnek kod paylşırsanız kodunuzun üstünden fikir yürütelim.
Yorumları: 228
Konuları: 51
Kayıt Tarihi: 08-05-2017
Rep Puanı: 462 Acemi
(21-10-2022, Saat: 15:10)vkamadan Adlı Kullanıcıdan Alıntı: burada örnek kod paylşırsanız kodunuzun üstünden fikir yürütelim.
UndiDbGrid in ClientEvents, ExtEvents, [store].load bölümündeki kod;
function store.load(sender, records, successful, operation, eOpts)
{
var tpl=new Ext.XTemplate(
'<div class="dvContainer">'+
'<table style="width:100%;border-collapse:collapse; height:100%;">'+
'<tr>'+
'<td style="width:85px;text-align:center;vertical-align:middle;">'+
'<img src="{[this.getProductImage(values)]}" style="width:50px;height:50px;margin:auto;"/>'+
'</td>'+
'<td style="width:50px;">'+
'<table style="width:100%;border-collapse:collapse;height:50px;text-align:center;">'+
'<tr>'+
'<td background="{[this.getKampanyaImage(values)]}"; background-repeat:no-repeat; style="width:85px; text-align:center;vertical-align:middle;">'+
'<br>'+
'</td>'+
'</tr>'+
'</table>'+
'</td>'+
'<td style="width:50px; font-weight: bold; color: #00008B; font-size: 16px; ">'+
'<table style="width:100%;border-collapse:collapse;height:50px;text-align:center;">'+
'<tr>'+
'<td background="{[this.getNakIskImage(values)]}"; background-repeat:no-repeat; style="width:85px; text-align:center;vertical-align:middle;">'+
'{15}'+
'</td>'+
'</tr>'+
'</table>'+
'</td>'+
'<td style="width:80px;">'+
'<table style="width:100%;border-collapse:collapse;height:50px;text-align:center;">'+
'<tr>'+
'<td>'+
'<a href="javascript:window.parent.ajaxRequest(sender, "hrefClick", ["hrefId=hrefId1"])">'+
'<img src="Simge/EkleBtn.svg" style="width:50px;height:50px;margin:auto;cursor:pointer;" '+
'/>'+
'<input type="button" id="btn1" name="btn1" value="ClickMe" onclick="callServer(this,"onclick")"><br>'+
'</a>'+
'</td>'+
'</tr>'+
'</table>'+
'</td>'+
'</tr>'+
'</table>'+
'</div>',
{
getProductImage: function(values){
return 'Resim/Urun/'+values[3]+'.jpg';
},
getKampanyaImage: function(values){
return 'Simge/'+values[11];
},
getNakIskImage: function(values){
return 'Simge/'+values[14];
},
getMiktar:function(values){
return Ext.util.Format.number(parseFloat(values[6]), '0,000');
},
getFiyat:function(values){
return Ext.util.Format.number(parseFloat(values[7]), '0,000.00 ₺');
},
getNetFiyat:function(values){
return Ext.util.Format.number(parseFloat(values[12]), '0,000.00 ₺');
},
getInsFiy:function(values){
return Ext.util.Format.number(parseFloat(values[13]), '0,000.00 ₺');
}
}
);
Ext.defer(function(){
sender.grid.setColumns([
{
text: '',
dataIndex: '0',
flex:1,
xtype: 'templatecolumn',
tpl: tpl
}
]);
sender.grid.getColumns()[0].show();
}, 500);
}
Simge/EkleBtn olduğu bölümü 2-3 farklı şekilde yazdım. fakat olmadı.
'<a href="javascript:window.parent.ajaxRequest(sender, "hrefClick", ["hrefId=hrefId1"])">'+
'<img src="Simge/EkleBtn.svg" style="width:50px;height:50px;margin:auto;cursor:pointer;" '+
'/>'+
'<input type="button" id="btn1" name="btn1" value="ClickMe" onclick="callServer(this,"onclick")"><br>'+
'</a>'+
'<img src="Simge/EkleBtn.svg" style="width:50px;height:50px;margin:auto;cursor:pointer;" '+
'onClick="javascript:uAnaMenu.UrunGrid.btn1Click({0});"'+
procedure TuAnaMenu.UrunGridAjaxEvent(Sender: TComponent; EventName: string;
Params: TUniStrings);
begin
// UrunGrid.ClientEvents.ExtEvents.Values[]
UniMemo2.Lines.Add(params.Text);
// if EventName = 'select' then
// ShowMessage(Params.Values['hrefId']);
end;
Yorumları: 172
Konuları: 16
Kayıt Tarihi: 10-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 5.340 Üstad
(21-10-2022, Saat: 16:42)m_ekici Adlı Kullanıcıdan Alıntı: (21-10-2022, Saat: 15:10)vkamadan Adlı Kullanıcıdan Alıntı: burada örnek kod paylşırsanız kodunuzun üstünden fikir yürütelim.
UndiDbGrid in ClientEvents, ExtEvents, [store].load bölümündeki kod;
function store.load(sender, records, successful, operation, eOpts)
{
var tpl=new Ext.XTemplate(
'<div class="dvContainer">'+
'<table style="width:100%;border-collapse:collapse; height:100%;">'+
'<tr>'+
'<td style="width:85px;text-align:center;vertical-align:middle;">'+
'<img src="{[this.getProductImage(values)]}" style="width:50px;height:50px;margin:auto;"/>'+
'</td>'+
'<td style="width:50px;">'+
'<table style="width:100%;border-collapse:collapse;height:50px;text-align:center;">'+
'<tr>'+
'<td background="{[this.getKampanyaImage(values)]}"; background-repeat:no-repeat; style="width:85px; text-align:center;vertical-align:middle;">'+
'<br>'+
'</td>'+
'</tr>'+
'</table>'+
'</td>'+
'<td style="width:50px; font-weight: bold; color: #00008B; font-size: 16px; ">'+
'<table style="width:100%;border-collapse:collapse;height:50px;text-align:center;">'+
'<tr>'+
'<td background="{[this.getNakIskImage(values)]}"; background-repeat:no-repeat; style="width:85px; text-align:center;vertical-align:middle;">'+
'{15}'+
'</td>'+
'</tr>'+
'</table>'+
'</td>'+
'<td style="width:80px;">'+
'<table style="width:100%;border-collapse:collapse;height:50px;text-align:center;">'+
'<tr>'+
'<td>'+
'<a href="javascript:window.parent.ajaxRequest(sender, "hrefClick", ["hrefId=hrefId1"])">'+
'<img src="Simge/EkleBtn.svg" style="width:50px;height:50px;margin:auto;cursor:pointer;" '+
'/>'+
'<input type="button" id="btn1" name="btn1" value="ClickMe" onclick="callServer(this,"onclick")"><br>'+
'</a>'+
'</td>'+
'</tr>'+
'</table>'+
'</td>'+
'</tr>'+
'</table>'+
'</div>',
{
getProductImage: function(values){
return 'Resim/Urun/'+values[3]+'.jpg';
},
getKampanyaImage: function(values){
return 'Simge/'+values[11];
},
getNakIskImage: function(values){
return 'Simge/'+values[14];
},
getMiktar:function(values){
return Ext.util.Format.number(parseFloat(values[6]), '0,000');
},
getFiyat:function(values){
return Ext.util.Format.number(parseFloat(values[7]), '0,000.00 ₺');
},
getNetFiyat:function(values){
return Ext.util.Format.number(parseFloat(values[12]), '0,000.00 ₺');
},
getInsFiy:function(values){
return Ext.util.Format.number(parseFloat(values[13]), '0,000.00 ₺');
}
}
);
Ext.defer(function(){
sender.grid.setColumns([
{
text: '',
dataIndex: '0',
flex:1,
xtype: 'templatecolumn',
tpl: tpl
}
]);
sender.grid.getColumns()[0].show();
}, 500);
}
Simge/EkleBtn olduğu bölümü 2-3 farklı şekilde yazdım. fakat olmadı.
'<a href="javascript:window.parent.ajaxRequest(sender, "hrefClick", ["hrefId=hrefId1"])">'+
'<img src="Simge/EkleBtn.svg" style="width:50px;height:50px;margin:auto;cursor:pointer;" '+
'/>'+
'<input type="button" id="btn1" name="btn1" value="ClickMe" onclick="callServer(this,"onclick")"><br>'+
'</a>'+
'<img src="Simge/EkleBtn.svg" style="width:50px;height:50px;margin:auto;cursor:pointer;" '+
'onClick="javascript:uAnaMenu.UrunGrid.btn1Click({0});"'+
procedure TuAnaMenu.UrunGridAjaxEvent(Sender: TComponent; EventName: string;
Params: TUniStrings);
begin
// UrunGrid.ClientEvents.ExtEvents.Values[]
UniMemo2.Lines.Add(params.Text);
// if EventName = 'select' then
// ShowMessage(Params.Values['hrefId']);
end;
Merhaba ,
<a href="javascript:window.parent.ajaxRequest(sender, "hrefClick", ["hrefId=hrefId1"])">
bu bölümü aşağıdaki gibi değiştirip denermisiniz.
<a href="javascript:window.parent.ajaxRequest(uAnaMenu.UrunGrid, "hrefClick", ["hrefId=hrefId1"])">
Eğer sonuç alamaz iseniz, "UrunGrid" isimli nesnenizin JSName ini elde edin forma bir butona showmessage(UrunGrid.JSNAme) diyerek deneme amaçlı elde edin genellikle "O" ile başlayan bir Js name oluyor mesela O112 olsun kodu aşağıdaki gibi deneyin ;
<a href="javascript:window.parent.ajaxRequest(window.parent.O112, "hrefClick", ["hrefId=hrefId1"])">
Yorumları: 228
Konuları: 51
Kayıt Tarihi: 08-05-2017
Rep Puanı: 462 Acemi
21-10-2022, Saat: 17:46
(Son Düzenleme: 21-10-2022, Saat: 18:01, Düzenleyen: m_ekici.)
Malesef olmadı. Gridin JSName OCF olarak geldi, denedim olmaıd. Parametrede ODA geldi, onu da denedim o da olmadı.
EventName :select
olarak geliyor. hrefClick gelmiyor.
Resme tıkladığımdaki params.Text ;
Ajax=1
IsEvent=1
Obj=ODA
Evt=select
This=ODA
rr=5
cc=0
_S_ID=fcJg8zSrJj10B5C6CFB
_fp_=%26OD6%3D%25021%2502%2502%25035%25030%2503%255B5%255D%2503
_seq_=e
_uo_=O74
**** EventName :select
Demoların içinde (html2ajax) HTML frame içerisini scrip ile fonksiyon yazılmış.
<script>
function callServer(elmnt, event) {
var HTMLFrame = Ext.getCmp("_HTMLFrame");
var params=[];
switch (elmnt.type) {
case "text":
case "password":
params = ["id="+elmnt.id, "val="+elmnt.value, "xevent="+event ];
break;
case "button":
params = ["id="+elmnt.id, "val="+elmnt.value, "xevent="+event ];
break;
case "checkbox":
params = ["id="+elmnt.id, "val="+elmnt.value, "checked="+elmnt.checked, "xevent="+event ];
break;
};
if (params.length>0) {
ajaxRequest(HTMLFrame, 'callserver', params);
}
}
</script>
<input type="text" id="txt1" name="txt1" onblur="callServer(this,'onblur')"><br>
<input type="password" id="psw1" name="psw1" onblur="callServer(this,'onblur')"><br>
<br>
<input type="checkbox" id="chBox1" name="chBox1" value="1" onclick="callServer(this,'onclick')">
<label for="chBox1">CheckBox1</label><br>
<br>
<input type="button" id="btn1" name="btn1" value="ClickMe" onclick="callServer(this,'onclick')"><br>
<br>
<br>
buradaki callServer scriptini nasıl kullanırım. (scrip kodunu nerye yazarım?)
bu kod muhtemelen işimiz çözer. ama script kodu html kodun üst kısmına yazdığımda yine çalışmadı. ( 'callserver') tek tırnak problemi galiba.
|