You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Ad...@nordlb-it.de on 2007/04/02 14:39:29 UTC
[Tobago] Reload sheet "B" on action in sheet "A"
Hi all,
i've a sheet "A" which is sortable and has more than one page.
I've also a sheet "B" which should observe all changes on sheet A and
changes itself.
To notice changes in sheet "A" i am using the stateChangeListener and
sortActionListener methods.
The problem is that if in tobago-config.xml ajax-enabled is true, then
sheet "B" will not be reloaded so the changes are not visible.
How can i solve this problem? Does anyone have some suggestions?
tobago-config.xml:
<tobago-config>
...
<ajax-enabled>true</ajax-enabled>
</tobago-config>
kind regards
Adam A. Henne
Re: [Tobago] Reload sheet "B" on action in sheet "A"
Posted by Ad...@nordlb-it.de.
Hello Volker,
your solution worked fine for the last months but since the 1.0.12 Release
i get some strange JS-Errors.
It seems that the JS-Errors are caused by the prototype.js.
Timeout thread: delay 10 ms
Error:
name: EvalError
message: Statement on line 254: Illegal use of eval
Backtrace:
Line 254 of linked script
http://localhost/MyApp/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/prototype.js
results.push(iterator(value, index));
Line 223 of linked script
http://localhost/MyApp/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/prototype.js
iterator(value, index++);
Line 416 of linked script
http://localhost/MyApp/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/prototype.js
iterator(this[i]);
Line 227 of linked script
http://localhost/MyApp/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/prototype.js
this._each((function (value)
{
try
{
iterator(value, index++);
}
catch (e)
{
if (e != $continue)
throw e;
}
}
));
Line 255 of linked script
http://localhost/MyApp/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/prototype.js
this.each((function (value,index)
{
results.push(iterator(value, index));
}
));
Line 162 of linked script
http://localhost/MyApp/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/prototype.js
return this.extractScripts().map(eval);
Line 888 of linked script
http://localhost/MyApp/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/prototype.js
html.evalScripts();
At unknown location
[statement source code not available]
Here is my <tc:column> with the reloadComponent()-function:
<tc:sheet value="#{dokumenteJsfListModel}" var="dokument" ...>
<tc:column ...>
<%-- Workaround: reload vorschaubilder panel --%>
<tc:out escape="false" value="<script type=\"text/
javascript\">
<!--
Tobago.reloadComponent('main:vorschaubilder1');
// -->
</script>"
rendered="#{dokument.reloadVorschaubilder}" />
</tc:column>
...
</tc:sheet>
What could be the problem?
kind regards
Adam A. Henne
weber.volker@googlemail.com schrieb am 02.04.2007 14:57:05:
> Hi Adam,
>
> if ajax-enabled is true, all sheet actions are done via ajax,
> currently only on ajax component could be updated in one request, this
> will change in future.
> This means for now, what you wand is not possible in clean tobago, but
> you can do it using javascript.
>
> You can force the update of sheet B by sending javascript code inside
> the update of sheet A.
>
> e.g. add a
> <tc:out escape="false" value="<script
>
type=\"text/javasxcript\">Tobago.reloadComponent('page:sheetB');</script>"
> rendered="#{bean.ensureOnce}" />
> to one of the columns of sheet A.
>
> the bean.isEnsureOnce() method should endure the tc:out is rendered
> only once per request, and not in every row.
>
> (not tested, but somthing like this should do the trick)
>
> Regards,
> Volker
>
> 2007/4/2, Adam.Henne@nordlb-it.de <Ad...@nordlb-it.de>:
> > Hi all,
> >
> > i've a sheet "A" which is sortable and has more than one page.
> > I've also a sheet "B" which should observe all changes on sheet A and
> > changes itself.
> > To notice changes in sheet "A" i am using the stateChangeListener and
> > sortActionListener methods.
> > The problem is that if in tobago-config.xml ajax-enabled is true, then
> > sheet "B" will not be reloaded so the changes are not visible.
> >
> > How can i solve this problem? Does anyone have some suggestions?
> >
> >
> > tobago-config.xml:
> >
> > <tobago-config>
> > ...
> > <ajax-enabled>true</ajax-enabled>
> > </tobago-config>
> >
> >
> >
> > kind regards
> >
> > Adam A. Henne
> >
> >
> >
> >
Re: [Tobago] Reload sheet "B" on action in sheet "A"
Posted by Ad...@nordlb-it.de.
Hello Volker,
thank you for the hint. It works fine for me.
kind regards
Adam A. Henne
weber.volker@googlemail.com schrieb am 02.04.2007 14:57:05:
> Hi Adam,
>
> if ajax-enabled is true, all sheet actions are done via ajax,
> currently only on ajax component could be updated in one request, this
> will change in future.
> This means for now, what you wand is not possible in clean tobago, but
> you can do it using javascript.
>
> You can force the update of sheet B by sending javascript code inside
> the update of sheet A.
>
> e.g. add a
> <tc:out escape="false" value="<script
>
type=\"text/javasxcript\">Tobago.reloadComponent('page:sheetB');</script>"
> rendered="#{bean.ensureOnce}" />
> to one of the columns of sheet A.
>
> the bean.isEnsureOnce() method should endure the tc:out is rendered
> only once per request, and not in every row.
>
> (not tested, but somthing like this should do the trick)
>
> Regards,
> Volker
>
> 2007/4/2, Adam.Henne@nordlb-it.de <Ad...@nordlb-it.de>:
> > Hi all,
> >
> > i've a sheet "A" which is sortable and has more than one page.
> > I've also a sheet "B" which should observe all changes on sheet A and
> > changes itself.
> > To notice changes in sheet "A" i am using the stateChangeListener and
> > sortActionListener methods.
> > The problem is that if in tobago-config.xml ajax-enabled is true, then
> > sheet "B" will not be reloaded so the changes are not visible.
> >
> > How can i solve this problem? Does anyone have some suggestions?
> >
> >
> > tobago-config.xml:
> >
> > <tobago-config>
> > ...
> > <ajax-enabled>true</ajax-enabled>
> > </tobago-config>
> >
> >
> >
> > kind regards
> >
> > Adam A. Henne
> >
> >
> >
> >
Re: [Tobago] Reload sheet "B" on action in sheet "A"
Posted by Volker Weber <v....@inexso.de>.
Hi Adam,
if ajax-enabled is true, all sheet actions are done via ajax,
currently only on ajax component could be updated in one request, this
will change in future.
This means for now, what you wand is not possible in clean tobago, but
you can do it using javascript.
You can force the update of sheet B by sending javascript code inside
the update of sheet A.
e.g. add a
<tc:out escape="false" value="<script
type=\"text/javasxcript\">Tobago.reloadComponent('page:sheetB');</script>"
rendered="#{bean.ensureOnce}" />
to one of the columns of sheet A.
the bean.isEnsureOnce() method should endure the tc:out is rendered
only once per request, and not in every row.
(not tested, but somthing like this should do the trick)
Regards,
Volker
2007/4/2, Adam.Henne@nordlb-it.de <Ad...@nordlb-it.de>:
> Hi all,
>
> i've a sheet "A" which is sortable and has more than one page.
> I've also a sheet "B" which should observe all changes on sheet A and
> changes itself.
> To notice changes in sheet "A" i am using the stateChangeListener and
> sortActionListener methods.
> The problem is that if in tobago-config.xml ajax-enabled is true, then
> sheet "B" will not be reloaded so the changes are not visible.
>
> How can i solve this problem? Does anyone have some suggestions?
>
>
> tobago-config.xml:
>
> <tobago-config>
> ...
> <ajax-enabled>true</ajax-enabled>
> </tobago-config>
>
>
>
> kind regards
>
> Adam A. Henne
>
>
>
>