У меня есть повторный контроль над отображением позиции XPage. Чтобы просмотреть другие данные, пользователь нажимает кнопку (внутри повтора), которая будет устанавливать переменную viewScope в rowIndex повтора, а затем открывает модальное отображение отображаемых деталей детали.XPages повторное управление и кнопка
Я не могу установить переменную viewScope с помощью кнопки. Это похоже на то, что он не может получить дескриптор rowIndex.
У меня есть вычисленное текстовое поле, установленное для отображения rowIndex в начале повтора (что отлично работает).
Мне явно не хватает чего-то элементарного. Любая помощь будет оценена.
Соответствующий исходный код следующим образом:
<xp:repeat id="repeat1" rows="50" var="entry" indexVar="rowIndex">
<xp:this.value><![CDATA[#{javascript:var m = sessionScope.assetMap;
if(m!=null){
m.entrySet()
}}]]></xp:this.value>
<div>
<small>
<label>
<xp:text escape="true" id="num">
<xp:this.value><![CDATA[#{javascript:var itemNum:Number = parseInt(rowIndex + 1);
itemNum.toPrecision(0);}]]></xp:this.value>
</xp:text>
.  Description:   
</label>
<xp:text escape="true" id="desc">
<xp:this.value><![CDATA[#{javascript:@Word(entry.getValue(),"~",3);}]]> </xp:this.value>
</xp:text>
</small>
</div>
<br></br>
<div>
<xp:button type="button" value="Details ..." id="button2">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:try{var itemNum:Number = parseInt(rowIndex + 1);
viewScope.currentItem = itemNum.toPrecision(0);
}catch(e) {
requestScope.errstatus = e.toString();}}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
02/04/2015 Обновление:
Я изолировали проблему к предоставленному свойству таможенного контроля. Код работает, если я не использую свойство rendered.
Код в onCLientLoad моего XPage (CSJS) является:
$(window).on('load resize', function(){
var screenWidth = $(window).width();
var sDevice = '';
switch(true){
case (screenWidth < 768):
sDevice = 'mobile';
break;
case (screenWidth < 922):
sDevice = 'tablet';
break;
case (screenWidth >= 922):
sDevice = 'desktop'
}
XSP.partialRefreshPost('#{id:pnlList}', {params: {'sDevice': sDevice}});
});
И источник для моего пользовательского элемента управления в XPage с оказанной собственности:
<xp:panel rendered="#{javascript:param.sDevice == 'mobile'}">
<xc:ccSYS_AppLayoutReq_p xp:key="panelContentFacet">
<xp:this.facets>
<xc:cc_cartracking_p xp:key="contentFacet"></xc:cc_cartracking_p>
</xp:this.facets>
</xc:ccSYS_AppLayoutReq_p>
</xp:panel>
Спасибо,
Dan
Дэн, возможно, попробуйте изменить уаг itemNum: Int вместо номера. Или попробуйте полностью удалить этот тип. Также, если вы переносите права на код в выражениях print(), вы получаете ожидаемые значения в журнале? –
Спасибо Стив. Я не думаю, что это связано с itemNum: Number, потому что это используется в вычисленном поле и прекрасно работает. Кроме того, моя попытка catch не создает никаких ошибок. –
Каков результат печати (parseInt (rowIndex + 1)) и print (itemNum) и print (itemNum.toPrecision (0)). Я думаю, что один из них является нулевым или неожиданным результатом, который может дать вам понять, где он терпит неудачу. –