Xpages:无法访问CSJS中的自定义属性

Xpages:无法访问CSJS中的自定义属性,xpages,Xpages,试图在客户端javascript中使用自定义属性(通过compositeData),但它不起作用 用户选择不同的值,因此onChange事件将触发。我能够获取我想要的字符串(refreshOnChangeID)并将其放入变量y中。我发出警报,得到正确的值(“fld4b”) 然后代码执行XSP.partialRefreshPost。如果我硬编码该字段,则会得到部分刷新 但是输入var(在最后一行被注释掉)不起作用。id解析为空 我做错了什么 $(document).ready( function

试图在客户端javascript中使用自定义属性(通过compositeData),但它不起作用

用户选择不同的值,因此onChange事件将触发。我能够获取我想要的字符串(refreshOnChangeID)并将其放入变量y中。我发出警报,得到正确的值(“fld4b”)

然后代码执行XSP.partialRefreshPost。如果我硬编码该字段,则会得到部分刷新

但是输入var(在最后一行被注释掉)不起作用。id解析为空

我做错了什么

$(document).ready(

function() {
    var x = x$("#{javascript:return getComponent(compositeData.fieldName).getClientId(facesContext);}").select2({});
    x.on('change', function(e) {
        var y = "#{compositeData.refreshOnChangeID}";
        alert(y);
        XSP.partialRefreshPost("#{id:fld4b}", {
            immediate: true
        });
        //XSP.partialRefreshPost('#{id:'+y+'}',{immediate: true});
    })
});
我可以通过创建一个隐藏的计算字段来解决这个问题,该字段解析为我要刷新的字段的id:

<xp:text
        escape="true"
        id="refreshID"
        value="${javascript:'#{id:'+compositeData.refreshOnChangeID+'}'}"
        style="display:none">
    </xp:text>

如果这是在输出脚本控件中,EL在那里不起作用。试试
var y='#{javascript:compsiteData.get(“refreshOnChangeID”)}

创建一个值为client ID+compositeData.fieldName的计算字段,然后使用客户端java脚本函数中的document.getElementById(“”).innerHTML来获取compositeData值。

我尝试过,但仍然不起作用。问题是我需要得到完整的计算id。我从来都无法在cs中计算它。但是,Slack上的某个人给了我一个id,让我插入一个计算出组件id的隐藏字段,然后获取该值:我将发布上面的代码。
$(document).ready(

function() {
    var x = x$("#{javascript:return getComponent(compositeData.fieldName).getClientId(facesContext);}").select2({});
    x.on('change', function(e) {
        var t = "#{id:refreshID}";
        var fldVal2 = document.getElementById(t).innerHTML;
        XSP.partialRefreshPost(fldVal2, {
            immediate: true
        });
    })
});