XPages и связанное частичное обновление

Я хотел бы выполнить частичное обновление на второй панели после завершения первого частичного обновления. Это мой код из источника:

<xp:comboBox id="comboBox3" value="#{document1.Company}">
<xp:selectItem itemLabel="Select a Company" itemValue="Select a Company">
</xp:selectItem>
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:var db = sessionScope.serverPath + "!!" + sessionScope.dbName; @Trim(@Unique(@DbColumn(db, "vwTblCompany",1)));}]]></xp:this.value>
</xp:selectItems>
<xp:eventHandler event="onclick" submit="true"
                        refreshMode="partial" refreshId="pnlLocation">
</xp:eventHandler>
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" disableValidators="true" refreshId="pnlLocation">
<xp:this.action><![CDATA[#{javascript:getComponent("comboBox4").setValue("Select a Location");}]]></xp:this.action>
</xp:eventHandler>
<xp:eventHandler>
<xp:this.onComplete><![CDATA[function() {
XSP.partialRefreshGet("#{id:pnlApprovalInfo}");
}]]></xp:this.onComplete>
</xp:eventHandler>
</xp:comboBox>

Ошибка, которую я получаю, когда я нажимаю на поле ключевого слова:

Произошла ошибка при обновлении части страницы. Невозможно прочитать вызов свойства null.

Может кто-нибудь показать мне, что я делаю неправильно?

Спасибо,

Дэн


person Dan Soares    schedule 26.01.2016    source источник


Ответы (1)


Неважно. Я понял, как это сделать:

<xp:comboBox id="comboBox3" value="#{document1.Company}">
<xp:selectItem itemLabel="Select a Company" itemValue="Select a Company">
</xp:selectItem>
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:var db = sessionScope.serverPath + "!!" + sessionScope.dbName; @Trim(@Unique(@DbColumn(db, "vwTblCompany",1)));}]]>  
</xp:this.value>
</xp:selectItems>
<xp:eventHandler event="onclick" submit="true"
                    refreshMode="partial" refreshId="pnlLocation">
<xp:this.onComplete><![CDATA[XSP.partialRefreshGet("#{id:pnlApprovalInfo}")]]></xp:this.onComplete>
</xp:eventHandler>
person Dan Soares    schedule 26.01.2016
comment
Я рекомендую использовать setTimeout в коде onComplete, чтобы предыдущий процесс XSP завершался до начала нового: например: setTimeout(function(){XPS.partialRefreshGet(...)}, 1); - person Newbs; 27.01.2016
comment
Спасибо Генри. Цените совет. - person Dan Soares; 27.01.2016