1

看看这里的示例。 我遇到的问题是即使在控件中删除了该值,我也需要在 numerictextbox 中保留 0.00 值。目前它在 UI 上显示为空。任何人都可以为问题提供最干净的解决方案吗?

4

1 回答 1

2

您可以连接小部件的更改事件并在触发时修改其值和模型的值来实现您的目标。

<div id="view">
    <div data-template="containertpl" data-bind="source: People"></div>       
    <button data-bind="click: AddNew">Add</button>
</div>


<script id="containertpl" type="text/x-kendo-template">
    <div>
      <label for="FirstName#:id#">Name</label>
      <input name="FirstName#:id#" type="text" data-bind="value: FirstName"/>
        <input data-role="numerictextbox" data-bind="value: Income, events: { change: numericChange }"/>
    </div>
</script>

var viewModel = kendo.observable({    
    People: [
        {id: 1, FirstName: "", Income: "0.00" },
        {id: 2, FirstName: "", Income: "0.00" },
        {id: 3, FirstName: "", Income: "0.00" }
    ],
    numericChange: function(args) {
         var numeric = args.sender;

        if (numeric.value() === null) { 
            numeric.value(0);
            args.data.set("Income", 0);
        }
    }
});

viewModel.AddNew = function(){
    viewModel.People.push({id: viewModel.People.length + 1, FirstName: "Generated", Income: "0.00"});
};

$(document).ready(function(){       
    kendo.bind($("#view"), viewModel);           
});
于 2013-05-08T17:33:06.700 回答