0
votes

I am trying to get a partial refresh to ONLY refresh the chunk of the page that I need to refresh. I understand that if I do a normal partial refresh the entire JSF lifecycle gets called. I understand that a way around this is to set "Set partial execution mode" and to select the ID I want to refresh.

However I can't get it to work.

Below I have put in a very simple example. When I put a value in the execID then I do not see the refreshed form row. When I don't put the execID in I DO see the values of the form rows, but I believe I am not doing a partial refresh.

I am not understanding something. Any help would be very much appreiciated.

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xe:formRow id="flyApplication" labelPosition="inherit"
        label="Application(s)">
    <xp:checkBoxGroup id="field1" layout="lineDirection"
            styleClass="twoColumnCheckBoxGroup">
            <xp:eventHandler event="onchange" submit="true"
                refreshMode="partial" refreshId="pnlModules" execMode="partial" execId="pnlModules">
                <xp:this.action><![CDATA[#{javascript:var v = getComponent("field1").getValue();
print (v);}]]></xp:this.action>
            </xp:eventHandler>
            <xp:selectItems>
                <xp:this.value><![CDATA[#{javascript:["Yes","No"]}]]></xp:this.value>
            </xp:selectItems>
    </xp:checkBoxGroup>
    </xe:formRow>
    <xp:panel id="pnlModules">
        <xe:formRow id="fr2" labelPosition="inherit"
            label="Module(s)">
            <xe:this.rendered><![CDATA[#{javascript:var v = getComponent("field1").getValue();
if (v == "Yes")
{return true}
else
{return false}}]]></xe:this.rendered>ddd<xp:checkBoxGroup id="field2" layout="lineDirection"
                styleClass="fourColumnCheckBoxGroup">
                <xp:this.value><![CDATA[#{javascript:"a"}]]></xp:this.value>
                <xp:selectItem itemLabel="Values" itemValue="Values"></xp:selectItem>
            </xp:checkBoxGroup>
        </xe:formRow>
    </xp:panel>
</xp:view>
1

1 Answers

2
votes

Partial Execution requires that the control that triggers the event be inside the panel that is getting partially executed.

Keep in mind that partial refresh and partial execution are two different things but can be used together if you keep in mind what I said above.