如何在Dojo布局
我将以编程方式使用:
{ name: 'Amount', field: 'col5', formatter: formatCurrency, constraint: {currency: 'EUR'}, widgetClass: HorizontalSlider, width: 10}
但我怎样才能在XPages中实现它:
<xe:djxDataGridColumn id="djxDataGridColumn10" editable="true" label="Amount " field="Amount " width="50px" cellType="dojox.grid.cells._widget"
formatter="formatCurrency">
</xe:djxDataGridColumn>
我需要能够在编辑网格时验证列输入
function formatCurrency(value){
return isNaN(value) ? '...' : currency.format(value, {currency: "EUR"});
}
答案 0 :(得分:1)
定义没有cellType属性的列
<xe:djxDataGridColumn
id="djxDataGridColumn10"
editable="true"
label="Amount "
field="Amount"
width="50px"
formatter="formatCurrency">
</xe:djxDataGridColumn>
并将您的CSJS代码更改为
require(["dojo/currency"]);
function formatCurrency(value){
return isNaN(value) ? '...' : dojo.currency.format(value, {currency: 'EUR'});
}
约束{currency: 'EUR'}
转换并显示值为EUR currency€:
如果值无效,则显示&#34; ...&#34;。
答案 1 :(得分:0)
西蒙,
您可以限制允许用户键入的键盘键,以防止他们输入字母字符。此选项不验证数字内容,如果需要,您必须单独执行此操作。
您需要创建一个作用于onkeypress事件的客户端函数。
代码看起来与此类似:
var keyCode = event.keyCode;
if((keyCode >= 48 && keyCode <= 57) || keyCode == 8 || keyCode == 46){
event.returnValue = true;
}else{
event.returnValue = false;
}
此示例允许数字以及退格和删除。如果要允许分数分隔符,则修改它以允许它。查找密钥代码的简便方法是使用http://keycode.info/
以下是我上个月就此主题撰写的一篇博文:http://notesspeak.blogspot.com/2015/11/limiting-keyboard-input-in-xpages.html
尽管有博客帖子标题,但这只是客户端javascript而不是特定于XPages。您也可以使用dojo或jQuery来完成同样的事情。