【发布时间】:2014-12-17 20:18:12
【问题描述】:
我正在尝试在 MVC 中开发一个功能齐全的 Gridview,数据显示在 gridview 中,但我想在同一页面上编辑一行,即当我单击编辑超链接时该行应该成为文本框。
这是我的html代码
<table>
<tr>
<th>
@Html.Label("ID")
</th>
<th>
@Html.Label("Name")
</th>
<th>
@Html.Label("Description")
</th>
<th>
@Html.Label("Date")
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
<input type="text" class="edit-input" />
@Html.DisplayFor(modelItem => item.Holiday_Id)
</td>
<td>
<input type="text" class="edit-input" />
@Html.DisplayFor(modelItem => item.Holiday_Name)
</td>
<td>
<input type="text" class="edit-input" />
@Html.DisplayFor(modelItem => item.Holiday_Description)
</td>
<td>
<input type="text" class="edit-input" />
@Html.DisplayFor(modelItem => item.Holiday_date)
</td>
<td>
<a class="edit" href="#">Edit</a> |
@* @Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |*@
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>
</tr>
}
</table>
我的 jQuery
@section Scripts{
<script type="text/javascript">
$(document).ready(function() {
$('a.edit').click(function () {
var dad = $(this).parent().parent();
dad.find('label').hide();
dad.find('input[type="text"]').show().focus();
});
$('input[type=text]').focusout(function() {
var dad = $(this).parent();
$(this).hide();
dad.find('label').show();
});
});
</script>
}
和我的文本框CSS
.edit-input {
display:none;
}
但是当我执行屏幕时我喜欢这个
我是 mvc 新手,对它了解不多, 我应该在 jQuery 中更改什么来修复它?
【问题讨论】:
-
你会使用 HTML5 吗?
元素上的 contenteditable=true 将使这项工作。 contenteditable="true" 不起作用
标签: jquery asp.net-mvc asp.net-mvc-4 gridview razor