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

时间:2016-07-27 16:20:36

标签: c# asp.net-mvc kendo-ui kendo-asp.net-mvc

我试过这个帮手:

@(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

1 个答案:

答案 0 :(得分:1)

这是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将被序列化,这将覆盖默认的客户端值,无论是什么。