首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsGrid编辑支付金额

jsGrid编辑支付金额
EN

Stack Overflow用户
提问于 2015-08-11 07:05:47
回答 2查看 6.4K关注 0票数 4

我使用jsGrid JQuery插件来显示和编辑支付。虽然这是一个很好的选择,但我无法使用内置字段来编辑“支付金额”。如果使用“数字”类型,则无法在小数位之后输入数字。如果我使用“文本”类型,我可以输入非数字值。

这是到目前为止我的代码

代码语言:javascript
复制
    $("#jsGrid").jsGrid({
        width: "100%",
        height: "auto",

        editing: true,
        paging: true,
        autoload: true,

        loadIndication: true,
        loadIndicationDelay: 500,
        loadMessage: "Please, wait...",
        loadShading: true,

        controller: {
            loadData: function () {
                return $.ajax({
                    type: "GET",
                    url: AJAX_URL_GET_CALCULATED_AFFECTED_PAYMENTS,
                    data: { 'startDate': startDate, 'endDate': endDate },
                    dataType: "json",
                    cache: false,
                });
            },
        },
        fields: [
            { name: "PaymentDate", title: "Payment Date", type: "text", width: 150, editing: false, },
            { name: "PaymentEndDate", title: "Payment End Date", type: "text", width: 150, editing: false, },
            { name: "PaymentStatusDisplay", title: "Payment Status", type: "text", width: 150, align: "center", editing: false, },
            {
                name: "PaymentAmount", title: "Payment Amount", type: "number", width: 100, align: "center", editing: true,
                itemTemplate: function(value) {
                    return "$" + value;
                },
            },
            { type: "control", deleteButton: false, editButton: true, editButtonTooltip: "Edit Amount", }
        ]
    });

是否有人使用此插件获得示例或设法创建自定义字段类型,或使用字段模板编辑jsGrid中的字段,仅允许货币值(数字、逗号、小数)。

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-26 23:06:30

您可以定义您的自定义字段如下:

代码语言:javascript
复制
function MoneyField(config) {
    jsGrid.NumberField.call(this, config);
}

MoneyField.prototype = new jsGrid.NumberField({

    itemTemplate: function(value) {
        return "$" + value.toFixed(2);
    }

    filterValue: function() {
        return parseFloat(this.filterControl.val() || 0);
    },

    insertValue: function() {
        return parseFloat(this.insertControl.val() || 0);
    },

    editValue: function() {
        return parseFloat(this.editControl.val() || 0);
    }

});

jsGrid.fields.money = MoneyField;

现在您可以在指定type="money"的字段中使用它了。

票数 8
EN

Stack Overflow用户

发布于 2017-10-19 10:01:46

下面是如何设置显示值的格式。这将以以下格式打印数字1 000.00美元。

宣布职能:

代码语言:javascript
复制
function formatNumberForDisplay(numberToFormat) {
    var formatter = new Intl.NumberFormat('en-US', {
        style: 'currency',
        currency: 'USD',
        digits: 2,
      });

      return formatter.format(numberToFormat);
}

然后在itemTemplate方法中使用它:

代码语言:javascript
复制
    itemTemplate: function(value) {
        return formatNumberForDisplay(value) ;
    },
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31935286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档