2011-01-20 25 views
1

jEditableを使用してMVCモデルの値を更新し、データベースに正常に戻しています。更新された値は、まさに私が望むウェブページに表示されます。私はまた、更新されたフィールドを使用して計算された値であるので、ページ上の別のコントロールを更新する必要があります。これを行う最善の方法は何ですか?成功したjEditableアップデートにフックがあり、他のコントロールをリフレッシュするためにjQueryを追加できますか?成功したjeditableサブミット後に別のコントロールを更新する

マイ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

まあ、私はあなたがコントローラメソッドを呼び出すために使用されるパラメータを取得するために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); 
       } 
      });     
     } 
    }); 
}); 

このパラメータは、次に行うために使用することができます

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呼び出しの成功コールバックは、適切なを更新するために使用されます。モデルから計算されたフィールドを返す別のアクションメソッドへのAjaxのポストdiv HTMLコンテンツ

関連する問題