Hello John,

I modify your example jsp a little bit. The partial refresh works for me. Here is my modified example jsp:

<[EMAIL PROTECTED] uri="http://myfaces.apache.org/tobago/component"; prefix="t"%>
<[EMAIL PROTECTED] uri="http://myfaces.apache.org/tobago/extension"; 
prefix="tx"%>
<[EMAIL PROTECTED] uri="http://java.sun.com/jsf/core"; prefix="f"%>
<f:view>
<t:page id="page">
  <f:facet name="layout">
    <t:gridLayout columns="1000px"  id="quarantineGridLayout"/>
  </f:facet>
  <t:box id="quarantineBox">
    <f:facet name="layout">
      <t:gridLayout />
    </f:facet>
    <f:facet name="toolBar">
      <t:toolBar labelPosition="left" id="quarantineToolbar">
        <t:toolBarCommand label="Delete All"
tip="Delete all messages in quarantine" id="QuarantineCmdDelAll">
          <f:facet name="confirmation">
            <t:out value="Delete every message in quarantine?"/>
          </f:facet>
        </t:toolBarCommand>
<t:toolBarCommand label="Delete" tip="Delete selected messages(s)"/>
        <t:toolBarCommand disabled="true"/>
        <t:toolBarCommand label="Deliver"
tip="Deliver selected messages to recipient(s)" />
        <t:toolBarCommand label="Deliver Always"
tip="Whitelist and then Deliver selected message(s) in one step" />
        <t:toolBarCommand label="WhiteList"
tip="Record sender of all selected messages - future messages from this sender will bypass filtering" />
        <t:toolBarCommand disabled="true"/>
        <t:toolBarCommand label="View Message"
tip="View message source in Message Display area" />
        <t:toolBarCommand disabled="true"/>
        <t:toolBarCommand label="Refresh" action="#{test.refresh}"
tip="Refresh list of quarantined messages" id="quarantineCmdRefresh" > <t:attribute name="renderedPartially" value=":page:quarantineInfoPanel"/>
        </t:toolBarCommand>
      </t:toolBar>
    </f:facet>
    <t:panel id="quarantinePanel1">
      <f:facet name="layout">
        <t:gridLayout rows="fixed;fixed;1*" id="quarantineGridLayout1"/>
      </f:facet>
      <t:panel id="quarantineInfoPanel">
        <f:facet name="layout">
<t:gridLayout columns="fixed;fixed;1*" rows="fixed;fixed;fixed" id="quarantineGridLayout2"/>
        </f:facet>
        <tx:in label="Total messages" readonly="true" id="messageCount"
               value="#{test.rows}"/>
<tx:in label="Messages / page" value="#{test.count}" id="messagesPerPage"
               tip="Maximum messages displayed per page"/>
        <t:cell/>
      </t:panel>
      <t:panel>
        <f:facet name="layout">
          <t:gridLayout id="sheetLayout" rows="400px"/>
        </f:facet>
        <t:sheet id="quarantineSheet" columns="3*;1*;1*;1*;1*"
                 var="quarantineRec" showPageRange="right" rows="0">
          <t:column label="From" id="From" sortable="true">
            <t:out value="#{quarantineRec}" id="quarantineSheetOut0"/>
          </t:column>
          <t:column label="To" id="To" sortable="true">
<t:out value="#{quarantineRec.recipient}" id="quarantineSheetOut1"/>
          </t:column>
          <t:column label="Subject" id="Subject" sortable="true">
<t:out value="#{quarantineRec.subject}" id="quarantineSheetOut2"/>
          </t:column>
          <t:column label="Match text" id="Matchtext" sortable="true">
<t:out value="#{quarantineRec.matchtext}" id="quarantineSheetOut3"/>
          </t:column>
          <t:column label="Filtered by" id="Filteredby" sortable="true">
<t:out value="#{quarantineRec.filteredby}" id="quarantineSheetOut4"/>
          </t:column>
        </t:sheet>
      </t:panel>
      <t:tabGroup switchType="reloadTab" id="quarantineTabGroup2">
<t:tab label="Message Display off" tip="Don't display content of selected message" >
          <f:facet name="layout">
            <t:gridLayout rows="0px" id="viewOffLayout"/>
          </f:facet>
          <t:panel/>
        </t:tab>
<t:tab label="Message Display on" tip="Display content of 1st selected message" >
          <f:facet name="layout">
            <t:gridLayout rows="fixed" id="viewOnLayout"/>
          </f:facet>
           <t:textarea readonly="true" height="300">
           </t:textarea>
        </t:tab>
      </t:tabGroup>
    </t:panel>
  </t:box>
</t:page>
</f:view>

Regards

Bernd

John wrote:
I get exactly the same error with the code below as before.
I did verify in the view source that the qualified Ids were correct.
-----Original Message-----
From: Volker Weber [mailto:[EMAIL PROTECTED] Sent: Friday, January 12, 2007 1:28 PM
To: MyFaces Discussion
Subject: Re: [Tobago] Problems with Tobago.reloadComponent with onclick

hi John,

the perfered way is
<t:toolBarCommand label="Refresh" action="#{quarantine.refresh}"
image="images/view-refresh.jpg" tip="Refresh list of quarantined
messages" id="quarantineCmdRefresh" >
  <t:attribute name="renderedPartially"
value=":mainPage:quarantineInfoPanel"/>
</t:toolBarCommand>

if "mainPage:quarantineInfoPanel" is the correct id. look in the
generated html for "Tobago.addAjaxComponent(<id>)", all those ids are
reloadable by ajax.

regards,
  volker




2007/1/12, John <[EMAIL PROTECTED]>:
Hi Volker,

There was already a Panel surrounding the tx:in, so I modified as follows, and still get the error.

onclick="Tobago.reloadComponent(mainPage:quarantineInfoPanel, '@autoId')


The source from the page expands it as so:

onclick="Tobago.reloadComponent('mainPage:quarantineInfoPanel',
'mainPage:quarantineCmdRefresh')"


What is the preferred way to add this to my toolBarCommand?

-----Original Message-----
From: Volker Weber [mailto:[EMAIL PROTECTED]
Sent: Friday, January 12, 2007 12:40 PM
To: MyFaces Discussion
Subject: Re: [Tobago] Problems with Tobago.reloadComponent with onclick

Hi John,

which version of tobago?

the onclick="Tobago.reloadComponent(<clientId>, '@autoId')"/> should work (afaik), but is not the intended way to code ajax reload (this was a interim solution).

anyway, the 'messageCount' is not a valid clientId, and tc:in is not ajax reloadable.

the clientId is build from ids of namingcontainers, at least tc:page, and the id of the component, so a valid clientId has at last on colon.

to reload the content of a tx:in you can surround it by a tc:panel e.g

(in the intended way):

<tc:page id="page"/>

  <tc:panel id="panel">
    <tx:in .../>
  </tx:panel>

  <tc:button ...>
    <tc:attribute name="renderedPartially" value=":page:panel"/>
  </tc:button>

</tc:page>


see the colon before 'page:panel' to make the clientId absolute.

regards,

Volker


2007/1/12, John <[EMAIL PROTECTED]>:

When I use the onclick as follows (per a previous message from Volker), I get the following error in IE.

<t:toolBarCommand label="Refresh" action="#{quarantine.refresh}"
image="images/view-refresh.jpg" tip="Refresh list of quarantined
messages"
id="quarantineCmdRefresh"
onclick="Tobago.reloadComponent('messageCount',
'@autoId')"/>


Line: 582
Char: 7
Error: Object doesn't support this property or method Code:0


If I remove the onclick part it works fine (but of course I can't use
the
AJAX dynamic updating of my tx:in  component

Thanks,
John



Reply via email to