Обновите другой элемент управления после успешной jeditable отправки - PullRequest
1 голос
/ 20 января 2011

Я использую 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 Ответ

1 голос
/ 26 января 2011

Ну, я понял это в конце

Вы можете использовать метод обратного вызова 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

...