如何在 kendo 条码中显示校验和?

How to show checksum in kendo barcode?

我试过这个助手:

@(Html.Kendo().Barcode()
      .Name("token")
      .Encoding(BarcodeSymbology.EAN13)
      .Checksum(true) //Nothing changes if true or false
      .Value(Model.Ean13Code)
)

由于没有任何改变,我尝试使用 Javascript:

$(function () {
    var barcode = $('#token').data('kendoBarcode');
    barcode.setOptions({
        checksum: true
    });
});

仍然没有校验和。

我也试过设置13位校验和的值,但是出现异常,应该只有12位。

我错过了什么?

这是 Barcode 的 MVC 包装器中的错误。 JavaScript代码中checksum属性的默认值为false。但是,C# 代码暗示默认值为 true。因此,当您设置 .Checksum(true) 时,不会向客户端序列化任何内容,因此假定为 false

一种可能的解决方法是在初始化小部件实例之前更改客户端原型:

<script>

    $(function () {
        kendo.dataviz.ui.Barcode.fn.options.checksum = true;
    });

</script>

@(Html.Kendo().Barcode()
      .Name("token")
      .Encoding(BarcodeSymbology.EAN13)
      .Checksum(true)
      .Value("123456789012")
)

您仍然需要在服务器端声明中使用 .Checksum(true),否则 false 将被序列化,这将覆盖默认的客户端值,无论它是什么。