XPages dan penyegaran sebagian berantai

Saya ingin melakukan penyegaran sebagian pada panel kedua setelah penyegaran sebagian pertama selesai. Ini kode saya dari sumbernya:

<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>

Kesalahan yang saya dapatkan ketika saya mengklik bidang kata kunci adalah:

Terjadi kesalahan saat memperbarui beberapa halaman. Tidak dapat membaca properti 'panggilan' nol.

Dapatkah seseorang menunjukkan kepada saya apa yang saya lakukan salah?

Terima kasih,

Dan


person Dan Soares    schedule 26.01.2016    source sumber


Jawaban (1)


Sudahlah. Saya menemukan cara melakukannya:

<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
Saya sarankan menggunakan setTimeout dalam kode onComplete sehingga proses XSP sebelumnya selesai sebelum proses baru dimulai: misalnya: setTimeout(function(){XPS.partialRefreshGet(...)}, 1); - person Newbs; 27.01.2016
comment
Terima kasih Henry. Hargai sarannya. - person Dan Soares; 27.01.2016