成功提交jeditable后更新另一个控件

时间:2011-01-20 09:58:49

标签: asp.net-mvc jeditable

我正在使用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"
    });
});

由于

科林。

1 个答案:

答案 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内容