现在我有以下代码:
@model IEnumerable<MvcAuction.Models.Furniture>
@{
ViewBag.Title = "Search";
}
<hgroup class="title">
<h1>@ViewBag.Title.</h1>
</hgroup>
@using (Html.BeginForm("SearchIndex", "Furniture", FormMethod.Get))
{
<p>
Description: @Html.TextBox("SearchString")
<input type="submit" value="Search" /></p>
}
<table class="searchResults">
<tr>
<th>
@Html.DisplayNameFor(model => model.Description)  
</th>
<th>
@Html.DisplayNameFor(model => model.EndingDate)  
</th>
<th>
@Html.DisplayNameFor(model => model.Category)
</th>
<th>
@Html.DisplayNameFor(model => model.Price)
</th>
<th>
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.EndingDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Category)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
<td>
<button data-bind="click: toggleBidInput ">
<span data-bind="text: bidCancel"></span>
</button>
</td>
<td>
<input data-bind="visible: bidInputVisible" />
<button data-bind="visible: bidInputVisible">
Submit</button>
</td>
</tr>
}
</table>
@section Scripts{
@Scripts.Render("~/Scripts/knockout-2.1.0.js")
<script type="text/javascript">
function ViewModel() {
var self = this;
self.bidInputVisible = ko.observable(false);
self.bidCancel = ko.observable("Bid");
self.toggleBidInput = function () {
self.bidInputVisible(true);
self.bidCancel("Cancel");
};
}
ko.applyBindings(new ViewModel());
</script>
}
因此,使用此代码,我在表格每一行的末尾都有一个“投标”。当我单击它时,它会重命名为“取消”,并且旁边会出现一个文本输入和另一个“提交”按钮(在所有行中)。
我想分开每个“投标”按钮,所以当我点击它时,只有该特定行中的那个按钮会更改为取消,并且只有在该行中才会出现文本输入和“提交”按钮。
我似乎无法为每一行分开按钮的效果。