我们正在使用Kendo NumericTextBox小部件向用户显示计算值。我们希望显示的值随着视图模型的改变而改变,但我们不希望用户能够编辑该值。
我们尝试过: - 禁用小部件。这会根据需要禁用用户交互,但不允许视图模型更新值。 - 将窗口小部件设置为只读。这允许更新值,并且不允许用户直接更改值,但是当用户单击它时,窗口小部件的外观会发生变化。
我们正试图找到一种在这两者之间存在某种东西的方法,其中值可以通过编程方式更改,但不能由用户更改。当用户点击小部件时没有明显效果。
这是否可以使用Kendo NumericTextBox?
编辑:问题是通过序列化表单将对viewmodel的更改发送回服务器,并且禁用的输入不会包含在表单序列化中。正如CodingWithSpike所指出的,这不是小部件本身的问题。
答案 0 :(得分:1)
在viewmodel上设置时,窗口小部件似乎更新正常,并且窗口小部件已禁用。
<input data-role="numerictextbox"
data-format="c"
data-min="0"
data-max="100"
data-bind="enabled: isEnabled,
value: selectedNumber">
<button type="button" data-bind="click: up">Incrament</button>
...
<script>
var viewModel = kendo.observable({
selectedNumber: 0,
isEnabled: false,
up: function () { viewModel.set("selectedNumber", viewModel.selectedNumber + 1); }
});
kendo.bind($("#example"), viewModel);
</script>
答案 1 :(得分:0)
在向用户呈现页面时禁用窗口小部件 - 当从其他输入重新计算页面时,这仍将显示更新的值。然后在将表单序列化回服务器之前重新启用小部件。