少し前に、Devexpress コンポーネントを使用して asp.net webforms アプリを開発しました。ユーザーが必要なすべての行を挿入した後、ユーザーは「送信」ボタンを押します。次に、すべてのデータをサーバー側に送信し、データベースに保存します。
私の MVC Telerik グリッドでは、同じことを行う方法がわかりません。これが私の見解です:
@(Html.Telerik()
.Grid( Model )
.Name( "DocumentGrid" )
.DataKeys(a => a.Add(b=> b.IDDocument))
.ToolBar(commands => { commands.Insert().Text("add"); })
.Columns(c =>
{
c.Bound(column => column.SupplierIdentification).Title("CNPJ/CPF");
c.Bound(column => column.StatusDescription).Title("Status");
c.Bound(column => column.ExpirationDate).Title("Vencimento");
c.Bound(column => column.IsStock).Title("Estoque");)
.DataBinding(x =>
x.Server().Insert("InsertNewDocument","Client"))
.Editable(a => a.Mode(GridEditMode.InForm).TemplateName("AddDocumentModel")).ClientEvents(x => x.OnSave("onSave")))
ご覧のとおり、モデルをパラメーターとしてアクションを呼び出す Insert がありますが、グリッドに行を追加し終わったときにそのアクションを「起動」したいと思います。
カスタム編集テンプレートに配置された JavaScript ボタンは次のとおりです。
<a href="javascript:void(0);" onclick="OnUpdateClick(this)"><b>Confirm</b>
このボタンは、一時行をグリッドに挿入する OnUpdateClick 関数を呼び出す必要があります。
function OnUpdateClick() {
var grid = $("#DocumentGrid").data("tGrid");
var item = {};
grid.insertRow(item);
}
このようなものになるはずです。助言がありますか?
編集:
グリッドを編集すると、~/Shared/EditorTemplates フォルダーから編集テンプレートを取得します。EditorTemplate フォルダーのスクリプトからグリッド データを取得することは可能ですか?