我是knockoutjs的新手,我只是想知道是否可以在表格行中输入文本,更新时会更改同一行的单元格的值。
模型:
public class RateData{
private double Rate{ get; set; }
private double RateUnit{ get; set; }
private double TotalRate{ get{ return Rate*Unit; }
}
List<RateData> rates = new List<RateData>{
new RateData{ Rate = 5.0, RateUnit = 1 },
new RateData{ Rate = 5.0, RateUnit = 2 }
};
在我看来:
<tbody data-bind="foreach: Rates">
<tr>
<td data-bind="text: $data.Rate"></td>
<td data-bind="value: $data.TotalRate"></td>
<td><input type="text" data-bind="value: $data.RateUnit class="form-control" /></td>
</tr>
</tbody>
我想让速率单位可更新,每次我对其进行更改时,它也会更新速率总计。实施例
For Row #1
RateUnit = 1
Rate = 5.0
TotalRate = RateUnit * Rate (5.0)
For Row #2
RateUnit = 2
Rate = 5.0
TotalRate = RateUnit * Rate (10.0)
请帮帮我。谢谢。
答案 0 :(得分:0)
您没有关闭数据绑定。请做。 我正在使用div和Ul,你可以用表替换。
<div data-bind="foreach: Rates">
<ul>
<li data-bind="text: $data.Rate"></li>
<li data-bind="text: $data.Rate * $data.RateUnit()"></li>
<li><input type="text" data-bind="value: $data.RateUnit" class=" form-control" /></li>
</ul>
</div>
在你的JS中。 &#39;数据&#39;成为你的榜样。
self = this;
ko.mapping.fromJS(data, {}, self)
self.Rates = ko.observableArray([
{ Rate: 5.0, RateUnit: ko.observable(0) ,TotalRate:0},
{ Rate: 6.0, RateUnit: ko.observable(0) ,TotalRate:0}
]);