1

これがaspl.netmvcラッパーを使用した剣道グリッドです。問題は、バッチインライン編集を行う場合です。保存をクリックします。

.Create(create => create.Action("UpdateLiabilities", "Liability", parameters))

トリガーされ、すべての変更がデータベースに保存されます。アカウントが正常に追加されたというメッセージを表示するには、コールバック関数を追加する必要があります。このコールバック関数を追加する方法がわかりません。

@(Html.Kendo().Grid<LiabilityVM>()
  .Name("QualifiedNonrecourseDebtGrid")
  .HtmlAttributes(new { style = "height: 300px;" })
  .Columns(columns =>
               {
                   columns.Bound(i => i.Id).Visible(false);
                   columns.Bound(i => i.AccountId).Visible(false);

                   columns.Bound(i => i.AccountNumber)
                       .Title("Account #")
                       .ClientTemplate("<span style='white-space:nowrap'><a href='\\#' onclick=\"showAccountInfo('acctInfoPopupContainer', " + parameters.clientId + ", " + parameters.projectId + ",#=WorkpaperId#, #=AccountId#, '#=AccountNumber#', '#=AccountNumberAndDescAndLabel#')\"> #= AccountNumber # </a></span>")
                       .HtmlAttributes(new { nowrap = "nowrap" })
                       .Width(70);
                   columns.Bound(i => i.Description)
                       .Title("Description")
                       .ClientTemplate("<span href='\\#' title='#= getEncodedValueOrDefault(Description, '')#'  style='white-space:nowrap'>#= getHtmlEncode(Description, '') #</span>")
                       .HtmlAttributes(new { nowrap = "nowrap" })
                       .Width(120);


               })
      .Editable(editable => editable.Mode(GridEditMode.InCell))
      .DataSource(grid => grid.Ajax()
                              .Batch(true)
                              .Model(model => { 
                                                model.Id(i => i.Id);
                                                model.Field(p => p.AccountNumber).Editable(false);
                              })
                              .ServerOperation(true).Group(groups => groups.Add(p => p.Source))
                              .Create(create => create.Action("UpdateLiabilities", "Liability", parameters))
                              .Read(read => read.Action("GetLiabilities", "Liability", parameters))
                              .Update(update => update.Action("UpdateLiabilities", "Liability", parameters))
                              .Aggregates(aggregates =>
                                         {
                                             aggregates.Add(p => p.TaxAdjustmentBalance).Sum();
                                         })
  )
  .Sortable()
  .Filterable()
  .Selectable(s => s.Mode(GridSelectionMode.Single))
  .Resizable(resize => resize.Columns(true))
  .Reorderable(reorder => reorder.Columns(true))
  .ColumnMenu()
  .Scrollable()
  )
4

2 に答える 2

4

これには、 syncと呼ばれる特別なイベントがあります。

あなたの場合、それはこのようなものでなければなりません:

 .DataSource(grid => grid.Ajax().Events(ev=>ev.Sync("theNameOfTHeCallBackFUnction")))
于 2013-02-26T18:44:47.470 に答える
0

UpdateLiabilitiesメソッドで、json(JavaScriptResult)の代わりにjsonpを次のように返します。

 const string alertMessage = "created";
 string aMessage = string.Format("alert('{0}');", alertMessage);
 var returned = new JavaScriptResult { Script = aMessage };
 return returned;
于 2013-02-26T16:58:31.383 に答える