我正在使用jEditable来更新我的MVC模型上的值并成功返回数据库。更新后的值会显示在网页上,这正是我想要的。我还想更新页面上的另一个控件(因为它是使用更新字段的计算值)。做这个的最好方式是什么?是否有一个成功的jEditable更新的钩子,我可以添加一些jQuery来刷新其他控件?
我的jEditable电话:
$(function () {
$(".editable_textarea").editable("@Url.Action("UpdateSharePrice","Home")", {
indicator: "<span style='color:#FF0000;'>Saving...</span>",
type: 'text',
submitdata: { _method: "put" },
select: true,
submit: 'OK',
cancel: 'X',
width: '40',
cssclass: "editable",
tooltip: 'click to edit...',
onblur: "submit"
});
});
由于
科林。
答案 0 :(得分:1)
好吧,我最终弄明白了
您可以使用JEditable回调方法获取用于调用控制器方法的参数:
$(function () {
$(".editable_textarea").editable("@Url.Action("UpdateSharePrice","Home")", {
indicator: "<span style='color:#FF0000;'>Saving...</span>",
type: 'text',
select: true,
submit: 'OK',
cancel: 'X',
width: '40',
cssclass: "editable",
tooltip: 'click to edit...',
onblur: "submit",
callback: function(value, settings)
{
var fundId = this.id;
$.ajax({
url: '@Url.Action("GetMarketValue", "Home")',
type: 'POST',
data: { id : fundId },
success: function (data) {
$('#marketValueDiv_' + fundId).html(data);
}
});
}
});
});
然后可以使用此参数对另一个从模型返回计算字段的操作方法执行ajax发布:
public ActionResult GetMarketValue(int id)
{
if (ModelState.IsValid && id > 0)
{
BaseFund targetFund = _context.Funds.Find(id);
return PartialView("GetMarketValue", targetFund);
}
else
{
return PartialView("0.00");
}
}
然后使用ajax调用的成功回调来更新相应的div html内容