我试图在html表格中使用X-editable来允许用户编辑和添加评论。我遇到的第一个问题是,尽管对控制器的调用成功更新了对数据库的注释,但x-edit窗口没有关闭,并且jquery错误函数在回调时执行。控制器没有返回错误。
关于如何公开此控件以允许用户添加新记录的任何想法?如果表是空的,我会得到一个链接来启动内联编辑器,但是如果有1个注释我不会。
TIA。
<script type="text/javascript">
$(function() {
$.fn.editable.defaults.mode = 'inline';
$('#note').editable({
url: function(params) {
params.contactId = document.getElementById('ContactId').value;
return $.ajax({
type: 'POST',
url: '@Url.Action("SaveNote", "Contact")',
data: JSON.stringify(params),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: true,
cache: false,
timeout: 10000,
success: function(response, newValue) {
//$('.className[data-pk="' + $(this).data('pk') + '"]').editable('setValue', newValue);
},
error: function(status, msg) {
alert(msg);
}
});
},
// title: 'Enter Note', cols: 2 rows: 8;
});
});
<table id="contact-notes-table" border="0" cellpadding="5" cellspacing="0" width="100%"
class="contact scrollable">
<thead>
<tr>
<th class="Note">
<div>
@Html.DisplayNameFor(model => model.FirstOrDefault().Note)
</div>
</th>
<th class="DateCreated">
<div>
@Html.DisplayNameFor(model => model.FirstOrDefault().DateCreated)
</div>
</th>
<th class="CreatedBy">
<div>
@Html.DisplayNameFor(model => model.FirstOrDefault().CreatedBy)
</div>
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td class="Note">
<div>
<a href="#" id="note" data-original-title title data-type="textarea" data-placeholder="Enter note here..." class="editable editable-click" data-pk=@item.ID>@Html.DisplayFor(modelItem => item.Note)</a>
</div>
</td>
<td class="DateCreated">
<div>
@Html.DisplayFor(modelItem => item.DateCreated)
</div>
</td>
<td class="CreatedBy">
<div>
@Html.DisplayFor(modelItem => item.CreatedBy)
</div>
</td>
</tr>
}
</tbody>
</table>