質問

と読み取り、作成、更新、破壊は一度に1行だけで作業するときにうまく機能します。

しかし、私が2人の顧客の編集を追加しようとすると、editingpopup_createが3回呼び出されます。1行目、および2行目の2つの行は... 2行以上を追加すると、同じパターンが続きます。editingPOPUP_CREATEメソッドは、顧客の数の数だけ実行されます。

現在の実装は次のようなものです。

        @(Html.Kendo().Grid<CustomerModel>()
              .Name("grid")
              .Columns(columns =>
              {
                  columns.Bound(p => p.Name);
                  columns.Bound(p => p.ContactPerson);
                  columns.Bound(p => p.ContactPersonEmail);
                  columns.Bound(p => p.ContactPersonPhone);
                  columns.Bound(p => p.MainPhoneNumber);
                  columns.Command(command => { command.Edit(); command.Destroy(); }).Width(180);
              })
              .ToolBar(toolbar => toolbar.Create())
                      .Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("CustomerPopUpTemplate"))
              .Pageable()
              .Sortable()
              .Scrollable()
              .HtmlAttributes(new {style = "height:500px;"})
              .DataSource(dataSource => dataSource
                  .Ajax()
                  .PageSize(10)
                  //.Events(events => events.Error("error_handler"))
                  .Model(model => model.Id(p => p.Id))
                  .Read(read => read.Action("EditingPopup_Read", "CustomerManagement"))
                  .Create(update => update.Action("EditingPopup_Create", "CustomerManagement"))
                  .Update(update => update.Action("EditingPopup_Update", "CustomerManagement"))
                  .Destroy(destroy => destroy.Action("EditingPopup_Destroy", "CustomerManagement"))
              )
              )
.

これはおそらく初心者の間違いですが、私はこれが起こるのかを理解するように思えます。私の意見では、グリッドの配線は、インスタンスごとに1回だけメソッドを呼び出すべきです。

説明は大幅に感謝されます。)

役に立ちましたか?

解決

作成した保存作成を実行すると、作成されたアイテムに関連付けられているIDが変更されますか?

私はあなたがしていることを疑っていますが、提供されているものからIDを変更していません。グリッドは別の作成者としてこれを扱います。

だからあなたのアイテムをデータベースに保存するとき、生成されたデータベースにIDを設定します。

コントローラコードを表示しているのを確認します。

JSONを介してそれに関連付けられているIDを更新するように、モデルをビューに戻すようにしてください。

EG

return json(new {model} .todatasourceresult(要求、modelState))

他のヒント

私の質問に回答して、もう少し質問に記入した投稿を見つけました...

剣道UIグリッド既に挿入された行を再び挿入しました

説明の方法は、オブジェクトのIDが0の場合、グリッドが新しい行だと考えることです。それが新しい行であるならば、それはそれを挿入する必要があると思います。行が追加されたときにグリッド内のオブジェクト/行の値が更新されない場合は、それが存在しないと思われるため、再追加しようとします。

私はこれが誰でも助けることができることを願っています... :)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top