2015-12-02 64 views
1

我又怎能货币约束添加到djxDataGridColumn在道场布局添加约束Dojo数据网格列的XPages

Programmaticly我会用:

{ 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"}); 
    } 

错误消息时字符串输入 Error message when String is entered

+0

你可以添加更多关于你在做什么的一般信息吗?我很困惑用户在网格中输入什么内容,特别是因为你的列被设置为editable =“false”。 –

+0

editable =“true”。我上面有更新,我希望单元格只接受数字或分数,没有字符串 –

+0

您可以将可以键入的字符限制为0-9和小数点分隔符(对于美国,某些国家/地区使用)。这是键盘按键有限的不同方法,但该值未经验证。你想让我做出一个答案来证明这一点吗? –

回答

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'}转换和显示数值为欧元货币€:

enter image description here

万一值无效显示“...”。

+0

先生如果我想单元格显示像上面的那样的提示错误消息 –

+0

你会使用'dijit.form。用于显示错误消息提示的“CurrencyTextBox”小部件,但不幸的是,我无法将它与XPage一起运行。 –

+0

您好先生,可以让网格接受德语货币输入,逗号为“465,87”而不是“456.87”吗? –

0

西蒙,

可以限制键盘键允许用户键入其阻止他们进入字母字符。此选项不验证数字内容,如果需要,您必须单独执行此操作。

您将需要创建一个在onkeypress事件上起作用的clientide函数。

的代码将类似于此:

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来完成同样的事情。