0
いくつかのFree JQGridがあり、新しい行の追加に問題があります。 inlineNav(ADD)のアイコンをクリックすると、新しい行が表示され、初めてSAVEアイコンをクリックすると正常に動作します。しかし、2行目を追加すると、inlineNavのSave-butttonは機能しません。行のEnterキーが機能します。グリッド全体をリロードした後、もう一度動作します。フリーJQGrid - inlineNavのsave-buttonが2行目を追加するときに機能しない
jQuery.extend($.jgrid.defaults,{
autowidth: true, pager:true, pgbuttons:false, pginput:false,
pgtext:false, datatype: "json", mtype: "POST",
rownumbers:true, rowNum:9999,
postData: {"savestate_encrypted" : function() {return $("input[name='savestate_encrypted']").val();}},
ondblClickRow: function (rowid, status, e) {
var $self = $(this), savedRow = $self.jqGrid("getGridParam", "savedRow");
if (savedRow.length > 0 && savedRow[0].id !== rowid) {
$self.jqGrid("restoreRow", savedRow[0].id);
}
$self.jqGrid("editRow", rowid, { focusField: e.target });
},
});
グリッド自体::
には、以下の
いくつかのデフォルトのグリッドのコードで、私は考え出した
jQuery("#grid").jqGrid({
url:"....",
jsonReader: {root: "resourceList"},
height: 500,
cmTemplate: { editable: true},
inlineEditing: {keys: true},
editurl: "....",
colModel:[ //Define Table Columns
{name: "name", label:"Name", key:true, hidden:false},
{name: "activeJobs", label:"aktive Jobs", width:250}
],
}).jqGrid("navGrid", {refresh:true, edit:false, del:true, search:false, add:false})
.jqGrid("inlineNav", {save:true, edit:true, add:true})
</script>
その線15300(ごめんありませんどのようにブランチバージョンを見つけるために知っている - 30日。2017年)グリッドソースでは、 "var ind"をfalseに設定し、ボタンをクリックすると、Enterキーが完璧に動作する
var tmp = {}, tmp2 = {}, postData = {}, editable, k, fr, resp, cv, savedRow, ind = $self.jqGrid("getInd", rowid, true), $tr = $(ind),
opers = p.prmNames, errcap = getRes("errors.errcap"), bClose = getRes("edit.bClose"), isRemoteSave, isError,
displayErrorMessage = function (text, relativeElem)....
速い解決策として、イベントでサブブライドし、グリッド全体をリロードしたかったのです。しかし、subscribe()は廃止されているようです(古いストラットタググリッドからjavascriptへの切り替えが行われていますが、バインドは正しい方法だと思いますが、どのイベントですか?
追加-----------------
私は、AjaxとJsonなしで同様の問題を表示する作業コードを作成しました。[追加]をクリックすると、値を入力し、[保存]を選択します。 inlineNavバーですべてがOKですが、再度、ADDの値を入力し、[保存]を選択押して、編集モードを開いたままになります。あなたが入力キーを使用している場合は代わりにそれが動作するSAVEが-BTN。
<!DOCTYPE html>
<html lang="de"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/jquery-ui.min.js"></script>
<script src="js/jquery.jqgrid.src.js"></script>
<link rel="stylesheet" href="js/jquery-ui.min.css">
<link rel="stylesheet" href="js/ui.jqgrid.min.css">
</head>
<script type="text/javascript">
/* DEFAULTS */
jQuery.extend($.jgrid.defaults,{
autowidth: true, // nutzt die ganze verfügbare Breite
pager:true, // Fusszeile -
pgbuttons:false, // - ohne Seitenkontrollbuttons
pginput:false, // - ohne Eingabefeld
pgtext:false, // - ohne Text
rownumbers:true, // immer Zeilennummern
rowNum:9999, // bis zu 9999 Zeilen
ondblClickRow: function (rowid, status, e) {
var $self = $(this), savedRow = $self.jqGrid("getGridParam", "savedRow");
if (savedRow.length > 0 && savedRow[0].id !== rowid) {
$self.jqGrid("restoreRow", savedRow[0].id);
}
$self.jqGrid("editRow", rowid, { focusField: e.target });
},
});
// For JSON Response
/* jQuery.extend($.jgrid.inlineEdit,{
restoreAfterError:false,
errorfunc: function(response)
{
var resp = response;
alert("error7");
return false;
},
successfunc: function(response)
{
var resp = response;
var hasNoError = true;
// var hasNoError = (resp.responseJSON.actionErrors.length == 0);
return hasNoError;
}
});
*/
function dataset() {
"use strict";
var mydata2 = [
{ id: "10", name: "test" , value: "5"},
{ id: "20", name: "test20", value: "5"},
{ id: "30", name: "test30", value: "5"},
{ id: "40", name: "test40", value: "5"},
{ id: "50", name: "test50", value: "5"},
];
return mydata2;
};
</script>
<body>
<table id="grid"></table>
<script type="text/javascript">
jQuery("#grid").jqGrid({
data: dataset(),
colModel: [
{ name: "id", label:"ID"},
{ name: "name", label:"NAME", align: "center" },
{ name: "value", label:"VALUE", align: "center" }
],
cmTemplate: { editable: true, autoResizable: true },
}).jqGrid("navGrid", {refresh:true, edit:false, del:true, search:false, add:false})
.jqGrid("inlineNav", {save:true, edit:true, add:true})
</script>
</body></html>
グラナダハノーバーアンドレアス!正確なコードを投稿してください。無料のjqGridでエラーが見つかった場合は、問題を再現するために使用できます。 'ind 'は'
Danke -Grusszurück:-) 無料のJQGridサンプルの1つを修正し、エラーを再現してみます。 1つのアイデア:私たちはJQuery 3.3.1を使用しています - すべてのサンプルが2.xまたは1.xバージョンを持っていますが、明日まで待ってください - 私は生産バグを修正する必要があります:-( –
無料jqGridはケースのjQuery 3.3.1をサポートしています。 [デモ](例:http://www.ok-soft-gmbh.com/jqGrid/OK/customSortIcons-fa4_4.13.6.htm)インライン編集には '' inlineNav''と '' formatter: ''アクション ''を使います – Oleg
答えて
私が正しく理解していればあなたの問題は、保存した後にグリッドをリロードしたいということです。あなたは目的のために
jqGridInlineAfterSaveRow
イベントを使用することができます:出典
2017-01-30 20:21:57 Oleg
関連する問題