The problem ist that the links in the table aren't ajax links. There are also
the navigation toolbar and the the headers toolbar which I want to disable
while the ajax request is running. The button which starts the ajax call isn't
in the table too.
Mit freundlichen Grüßen
Christoph Manig
Systems Engineer
T-Systems International GmbH
Systems Integration - SC Travel, Transport Logistics
Hoyerswerdaer Str. 18
01099 Dresden
tel.: +49 (0) 351 / 8152 - 188
fax:+49 (0) 351 / 8152 – 209
email: christoph.ma...@t-systems.com
T-SYSTEMS INTERNATIONAL GMBH
Aufsichtsrat: Thomas Dannenfeldt (Vorsitzender)
Geschäftsführung: Reinhard Clemens (Vorsitzender), Dr. Ferri Abolhassan, Thilo
Kusch, Dr. Markus Müller, Georg Pepping, Hagen Rickmann
Handelsregister: Amtsgericht Frankfurt am Main HRB 55933
Sitz der Gesellschaft: Frankfurt am Main
WEEE-Reg.-Nr. DE50335567
-Ursprüngliche Nachricht-
Von: Martin Grigorov [mailto:mgrigo...@apache.org]
Gesendet: Donnerstag, 9. Januar 2014 16:09
An: users@wicket.apache.org
Betreff: Re: set table disabled while ajax request is running
You can use AjaxChannel with the same name for all Ajax buttons/links in the
table and with type ACTIVE.
This way only one Ajax request for this channel will be executed. All other
will be discarded.
Martin Grigorov
Wicket Training and Consulting
On Thu, Jan 9, 2014 at 5:02 PM, christoph.ma...@t-systems.com wrote:
It is nice to show additional text oder something like this, but I
cant hide or disable the shown table. So the user has still the
possibility to click at one of the toolbars, which will throw an exception.
Are there no other ways?
Mit freundlichen Grüßen
Christoph Manig
Systems Engineer
T-Systems International GmbH
Systems Integration - SC Travel, Transport Logistics Hoyerswerdaer
Str. 18
01099 Dresden
tel.: +49 (0) 351 / 8152 - 188
fax:+49 (0) 351 / 8152 - 209
email: christoph.ma...@t-systems.com
T-SYSTEMS INTERNATIONAL GMBH
Aufsichtsrat: Thomas Dannenfeldt (Vorsitzender)
Geschäftsführung: Reinhard Clemens (Vorsitzender), Dr. Ferri
Abolhassan, Thilo Kusch, Dr. Markus Müller, Georg Pepping, Hagen
Rickmann
Handelsregister: Amtsgericht Frankfurt am Main HRB 55933 Sitz der
Gesellschaft: Frankfurt am Main WEEE-Reg.-Nr. DE50335567
-Ursprüngliche Nachricht-
Von: Andrew Geery [mailto:andrew.ge...@gmail.com]
Gesendet: Donnerstag, 9. Januar 2014 15:12
An: users@wicket.apache.org
Betreff: Re: set table disabled while ajax request is running
The easiest way to do that is to use
http://ci.apache.org/projects/wicket/apidocs/6.x/org/apache/wicket/aja
x/IAjaxIndicatorAware.html
See
http://wicketinaction.com/2008/12/preventing-double-ajax-requests-in-3
-lines-of-code/
for
an example.
Andrew
On Thu, Jan 9, 2014 at 7:07 AM, Martin Grigorov mgrigo...@apache.org
wrote:
Hi,
You may show a veil above the table to prevent clicking on elements
during the ajax call
Martin Grigorov
Wicket Training and Consulting
On Thu, Jan 9, 2014 at 1:01 PM, christoph.ma...@t-systems.com wrote:
Hello,
in my application I have a table with some custom toolbars. This
table shows some data from the database if the user clicks an ajax
button. But
if
the user clicks the button again, the table will be replaced by a
new
table
with the new data. Here an example:
target.add(page.get(table).replaceWith(getNewTable(newData)));
This works fine. :)
Now the problem. When the user clicks the ajax button again the
ajax request begins running, but the user is able to click one of
toolbars of the shown table. So I get an exception: the
table.toolbar
was not found.
This is ok because of the replacement with a new table. I want to
disable the shown table while the ajax request is running. If the
request
detaches
the old table will be replaced by the new table with enabled toolbars.
I tried to override the onEvent-method of my table. Here you can
see the
code:
@Override
public void onEvent(IEvent? event){
if(event.getPayload() instanceof AjaxRequestTarget){
AjaxRequestTarget actualRequestTaget =
(AjaxRequestTarget)event.getPayload();
actualRequestTaget.addListener(new
AjaxRequestTarget.AbstractListener(){
@Override
public void onBeforeRespond(MapString,Component
map, AjaxRequestTarget target) {
setEnabled(false);
}
@Override
public void onAfterRespond(MapString,Component
map, AjaxRequestTarget.IJavaScriptResponse response) {
setEnabled(true);
}
});
}
}
But this didn't work. I can click the toolbars while the request
is running and then I get the old excetion. The table will be
disabled if
the
request has finished.