У меня есть ссылка в верхней части моей страницы, которая скрыта до тех пор, пока переключатель не будет изменен с Нет на Да или пока ссылка не будет скрыта и не будет нажата.

Когда мой переключатель меняется с Нет на Да, я запускаю пару частичных обновлений, чтобы показать ссылку и другой компонент на странице. По какой-то причине я получаю сообщение об ошибке при попытке показать ссылку, но не другой компонент.

Ниже приведен код ссылки, переключателя и другого компонента (загрузка файла), который также становится невидимым. Может быть, кто-нибудь скажет мне, что мне не хватает?

 <xp:link escape="true"
    text="Required: Click Here to Review COI"
    id="linkReviewCOIRequirements"
    value="http://domain.com/file.pdf"
    target="_blank"
    style="font-weight:bold; border-color:red;">
    <xp:this.rendered><![CDATA[#{javascript:
    viewScope.vendorAppReadCOI != "Yes" && 
    ( getComponent("rgVendorAPPGenLiabilityInsurYNI").getValue() == "Yes" || getComponent("rgVendorAPPWorkCompInsurYNI").getValue() == "Yes" || getComponent("VendorAPPProfLiabilityInsurYNI").getValue() == "Yes" ) }]]></xp:this.rendered>
<xp:eventHandler event="onclick" submit="true"
refreshMode="norefresh" id="eventHandler1" immediate="true">
<xp:this.action><![CDATA[#{javascript:viewScope.vendorAppReadCOI = "Yes"
    }]]></xp:this.action>
</xp:eventHandler>
<xp:radioGroup id="rgVendorAPPGenLiabilityInsurYNI"
    value="#{vendorApplication.vendorAPPGenLiabilityInsurYNI}"
    defaultValue="No"
    readonly="#{javascript:( sessionScope.vendorAppRenew == true ) ? true : false;}">
    <xp:selectItem itemLabel="Yes" itemValue="Yes"
        id="selectItem3" />
    <xp:selectItem itemLabel="No" itemValue="No"
        id="selectItem4" />
    <xp:eventHandler event="onclick"
        submit="false" id="eventHandler3">
        <xp:this.script><![CDATA[
XSP.partialRefreshPost( "#{id:panelFU2}" , 
{
    onComplete: function()
    {
        XSP.partialRefreshPost("#{id:linkReviewCOIRequirements}",
        {
        } )
    }
} ); 
]]></xp:this.script>
    </xp:eventHandler>
</xp:radioGroup>

<xp:panel id="panelFU2">
    <xp:fileUpload id="fuVendorAPPGenLiabilityDoc"
        value="#{vendorApplication.vendorAPPGenLiabilityDoc}"
        readonly="#{javascript:( sessionScope.vendorAppRenew == true ) ? true : false;}">
        <xp:this.rendered><![CDATA[#{javascript:getComponent("rgVendorAPPGenLiabilityInsurYNI").getValue() == "Yes";}]]></xp:this.rendered>
    </xp:fileUpload>
</xp:panel>
0
Bitwyse1 29 Июн 2016 в 23:52
Какое сообщение об ошибке вы получаете?
 – 
Per Henrik Lausten
30 Июн 2016 в 00:20
Произошла ошибка при обновлении части страницы. Нет элемента для отправки с представлением идентификатора: _id1: _id26: tpInsuranceInformation: _id759: linkReviewCOIRequirements
 – 
Bitwyse1
30 Июн 2016 в 00:32

1 ответ

Лучший ответ

Убедитесь, что вы обновили, например, xp: div вместо этого и что этот div содержит вашу ссылку. Ошибка возникает из-за того, что ссылка xp: отсутствует в дереве компонентов, когда код пытается ее обновить.

1
Per Henrik Lausten 30 Июн 2016 в 00:39
1
Пер, как всегда, у тебя есть ответ! Большое спасибо!!! Я должен помнить об этом. Я подозреваю, что эта проблема есть и в других частях моего приложения.
 – 
Bitwyse1
30 Июн 2016 в 00:48