2014-07-08 38 views
0

我们使用Kendo NumericTextBox小部件向用户显示计算值。我们希望显示的值随着视图模型的改变而改变,但我们不希望用户能够编辑该值。Readonly NumericTextBox - 禁用显示隐藏输入的单击事件

我们尝试过: - 禁用小部件。这会根据需要禁用用户交互,但不允许视图模型更新值。 - 将小部件设置为只读。这允许更新值,并且不允许用户直接更改值,但是当用户点击它时,小部件的外观会发生变化。

我们正试图找到一种方法来在这两个之间有一些东西,其中值可以通过编程方式更改,但不能由用户更改。并且在用户点击小部件时没有可见的效果。

enter image description here

这可能与一个剑道NumericTextBox?

编辑:问题是对视图模型的更改通过序列化表单发送回服务器,并且禁用的输入不会包含在表单序列化中。正如CodingWithSpike所指出的那样,这不是小部件本身的问题。

回答

0

将页面呈现给用户时禁用小部件 - 当它们从其他输入重新计算时,仍会显示更新的值。然后在将表单序列化回服务器之前重新启用小部件。

1

小部件在viewmodel上设置时似乎更新正确,并且该小部件被禁用。

See this example

<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> 
+0

哦,谢谢你指出。事实证明,我错误地记住了小部件的工作方式。你是对的,现在我发现了一个基于此的解决方法。 –