試圖在客戶端JavaScript中使用自定義屬性(通過compositeData),但它不起作用。X頁面:無法訪問CSJS中的自定義屬性[已更新]
用戶選擇一個不同的值,因此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>
然後我就能夠抓住這個字段的值並在我的CSS中使用它:
$(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
});
})
});
非常感謝! –