Help with Registered callback methods - Printable Version +- Atozed Forums (https://www.atozed.com/forums) +-- Forum: Atozed Software Products (https://www.atozed.com/forums/forum-1.html) +--- Forum: IntraWeb (https://www.atozed.com/forums/forum-3.html) +---- Forum: English (https://www.atozed.com/forums/forum-16.html) +----- Forum: IntraWeb General Discussion (https://www.atozed.com/forums/forum-4.html) +----- Thread: Help with Registered callback methods (/thread-1192.html) |
Help with Registered callback methods - LeoBruno - 08-16-2019 Hi: I´m testing Intraweb 15.1 and I need to get on server side (IWApplication) the result value from a javascript function executed on client side. I have read this dodumentation http://docs.atozed.com/docs.dll/development/Async%20callbacks%20in%20IntraWeb%2015.1.html and these threads https://www.atozed.com/forums/showthread.php?tid=498 , https://www.atozed.com/forums/thread-1134.html Also IW CustomAjaxCall Demo. But I find all very confusing, because i need the return values on server side. So Why should I use a callback method, when all I need to do is to get a result value that is on the client side? Also, I´m not sure if I got this right. Here is what I have so far... 1- the CallBackMethod: procedure TfrmBase.clbkGridSel(aParams: TStrings; out aResult: string); begin aResult := aParams.Values['Selection']; end; 2 - the registration of the callback method procedure TfrmBase.IWAppFormCreate(Sender: TObject); begin WebApplication.RegisterCallBack('clbkGridSel', clbkGridSel); end; How do I get, on server side, the aResult from the callback method to process this information? I wrote this method to execute the callback on client side, but as you can see, It doesn´t help me to get the information. function TfrmBase.GetSelecaoGrid: string; begin WebApplication. CallBackResponse. AddJavaScriptToExecute('ajaxCall("clbkGridSel", "&Selection=" + GRIDCADUSUARIOGetSelected()'); end; GRIDCADUSUARIOGetSelected() id the javascript function that will return the selected data. In other words, what I need to accomplish, is to be able to call javascript "GRIDCADUSUARIOGetSelected() " from Server Side, and get it´s result value. RE: Help with Registered callback methods - Jose Nilton Pace - 08-16-2019 Hi Leo. Try this: Code: procedure TfrmBase.IWAppFormCreate(Sender: TObject); RE: Help with Registered callback methods - LeoBruno - 08-17-2019 (08-16-2019, 09:06 PM)Jose Nilton Pace Wrote: Hi Leo. Try this: Hi Jose, thanx for your reply. If you take a closer look, you'll see that I already registered the callback method, but instead of registering an anonymous method, I have registered the method TfrmBase.clbkGridSel; Anyway, I realized what I was doing wrong. First, I changed the javascript, to include the call of the callback method, after obtaining the result. Then, altered a bit the code, since the out parameter was useless in this case. From this part, assume that the CallBack Method is already registered. From now on, I'll only post the code which I need help with. Here is the refactored callback method: Code: procedure TfrmBase.clbkGridSel(aParams: TStrings); Now, on the AsyncClick event of a button, I call the following method: Code: function TfrmBase.GetSelecaoGrid(aHtmlID: string): string; I don't want to reload the form. So, how do I achieve this? RE: Help with Registered callback methods - Jose Nilton Pace - 08-17-2019 Hi Leo. I made a demo using callback on AsyncClick. Code: procedure TIWForm1.IWAppFormCreate(Sender: TObject); |