Jquery-3.2.1でjqgrid 4.5.2バージョンを使用しています。前にjqgridのカスタムフォームのカスタムボタンにイベントを送信できません
jqgridでは、編集ボタン(追加、編集、削除)の代わりに、カスタム(追加、編集、削除)ボタンが実装されています。カスタムの追加/編集ボタンをクリックすると、カスタムフォームが開きます。以下は、カスタムボタンのonclickイベントです。
つまり、jqgridのデフォルトの編集/追加フォームを独自のカスタムフォームに置き換えました。以前は、jqgridのデフォルト(追加/編集)フォームで正常に動作していたbeforeSubmitイベントでいくつかの検証を書きました。今度は、置き換えられたカスタムフォームに同じ検証を適用したいと思います。
function(myGrid){
myGrid.getGridParam('dataGrid').openEditFormIndicator();
}(myGrid)
このカスタムフォームには、カスタム送信ボタンとキャンセルボタンがあります。今私はbeforeSubmitイベントをこの送信ボタンに追加したいと思います。フォームはカスタムなので、jqgrids default beforeSubmitイベントは機能しません。
フォームの追加/編集は、Javaで構築された独自のフレームワークによって行われます。フォームはjqgridから完全に独立しています。私はちょうどjqgrid行(ダブルクリックまたは編集ボタンをクリックして)からidを取得し、dbからデータを取り出して行編集フォームを作成するテンプレートに渡します。渡されたIDが空であるか、dbで見つからなかった場合、空の(追加)フォームが同じテンプレートで形成されます。
DataGrid.prototype.openEditFormIndicator = function() {
var id = this.grid.getGridParam('selrow')
if(!id) {
var gridId = this.grid.attr('id');
var idSelector = "#alertmod_" + gridId;
$.jgrid.viewModal(idSelector, {
gbox: "#gbox_" + $.jgrid.jqID(gridId),
jqm: true
});
$(idSelector).find(".ui-jqdialog-titlebar-close").focus();
}
else {
//openInteractiveForm('form_plugin_examples',this.options.formIndicatorId,'id',id,'true');
var encodedPkId = encodeURIComponent(id);
this.openFormIndicator('Id:' + encodedPkId + ',pkId:' + encodedPkId + ',Search:id%3A' + encodedPkId + ',IndicatorId:' + this.options.formIndicatorId + ',Debug:true' + ',FilterField:id,FilterValue:' + encodedPkId);
// TODO width, length, position
}
};
DataGrid.prototype.openFormIndicator = function(optionsStr) {
DialogBoxEdit.newWindow(this.options.formIndicatorId, optionsStr);
};
上記の2つの機能を使用すると、追加/編集フォームがDialogBoxEditHandler.jsで形成されます。 jsはフォームを作成するために内部的にテンプレートを呼び出します。
作成されたフォームには、次の2つのボタンが含まれています。そのためには、前に投稿イベントを追加する必要があります。
<Button id="lnk-close" onclick="closeDialogBoxControl($(this).closest('form'));" class="btn-default">Close</Button>
<Button id="lnk-submit" onclick="save_form_data($(this).closest('form'),true,'72');MD.ui.reloadGrid();" class="btn-primary ui-dialog-close">Save</Button>
この問題に関するヘルプが必要な場合は、コードを提供する必要があります。 –
@AnteJablanAdamović:それは一般的な質問です。私が書いたコードには何の問題もありません。これは新しい実装であり、Googleのヘルプは見つかりませんでした。私の質問は、私が正確に必要なものを説明していると信じています。 – santoshM
あなたのコードを見ることなく、beforeSubmitイベントをどのようにバインドしたかわからないので、私たちはあなたを助けることができません。 –