You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Razor页面中正确格式化更新Kendo NumericTextBox?

解决Kendo NumericTextBox更新后不即时显示的问题

直接通过jQuery操作DOM元素的val()和change()方法无法同步Kendo NumericTextBox的内部状态——因为控件本身维护了独立的数值管理和格式化逻辑,正确的做法是调用Kendo控件的官方API:

  • 先获取NumericTextBox的实例,而非直接操作底层input元素
  • 使用控件的setValue()方法设置值,该方法会自动应用预设的格式化规则并即时更新显示

修正后的代码

// 获取Kendo NumericTextBox实例
var numericTextBox = $("#DataModel_FieldName").data("kendoNumericTextBox");
// 设置目标值,自动应用{0:C}货币格式化
numericTextBox.setValue(value);
// 可选:如果需要触发控件绑定的change事件,添加此行
numericTextBox.trigger("change");

原理说明

Kendo的NumericTextBox对原生input做了封装,内部保存了原始数值和格式化后的显示值两个状态。直接修改input的val()只会更新DOM的文本内容,不会同步到控件的内部状态,因此需要通过官方提供的setValue()方法,让控件同时更新内部数值和前端显示的格式化文本,无需点击控件就能即时生效。

注意:传入setValue()的value必须是数值类型(如100、250.5),而非带货币符号的字符串,这样控件才能正确应用{0:C}格式。

内容的提问来源于stack exchange,提问作者dtthom09

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:05:22