
jqGridでページャを利用して複数ページの画面を作成しております。
2ページ目以降のデータを選択してdelRowData()、setRowData()を使用すると1ページ目のレコードが削除、更新されてしまいます。
// 選択されたレコードを削除
function deleteData() {
var ids = grid.getGridParam("selarrrow"); // 選択行ID
if(delCnt > 0) {
for(i = delCnt-1; i >= 0; i--) {
$('#grid').delRowData(ids[i]);
}
}
return false;
}
// グリッドに反映
function updateData(index) {
var rowdata = $('#grid').getRowData(index);
rowdata.id = $('#id').val();
// グリッドに反映
grid.setRowData(index, rowdata);
}
上記のようなメソッドを実装していますがうまくいきません。
解決方法をご存じの方がいらっしゃいましたらご教示お願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
jqGridに取り組み始めたところでお役に立てるかどうかわかりません。
また、私自身はjqGridのフォーム編集を使っているので、少々状況が違うかもしれません。
jqGridのパラメータ設定で、loadonce: true; として、サーバからデータを一気に読み込めば、rowidは連続して一意に振られると思いますので、仰るような問題は起きないと思います。
ただ、データ量が多いとメモリオーバフローが起きると思います。128MB以上とか。
その場合は、loadonce: false; として、ページごとに(たとえば10件ずつ)データを読み込みますが、rowidはそのページ内のインデックスが使われるようです。
おそらくこのrowid(たとえばページが10件分ならば、1~10)を2ページ目で取得してそのまま削除処理に渡すと、sortorder: asc であれば、1ページ目の1~10が削除されるのではないでしょうか?
なので、ページによって得られたrowidから連続したidを計算して使うとかの処理が必要でしょう。
また、colModelでprimary keyのフィールドに、key: true としておけば、rowidとしてこのフィールドの値が採用されるようですので、私はこれをauto incrementされるSID(System ID)フィールドに指定して、利用しています。そうすれば元々連続したIDですので、仰るような問題は起きないと思います。
以上です。
example:
var colNames1_1 =
['SID',~(省 略)~,'DEL'];
/**/
var colModel1_1 =
[
{name:'SID',index:'SID',key:true,width:40,align:'left',editable:true,editoptions:{readonly:true},sorttype:'int'},
(省 略)
{name:'IS_DEL',index:'IS_DEL',width:40,align:'left',editable:true}
];
/**/
var rowList = [10,20,30,40,50];
/**/
$("#list1-1").jqGrid({
url:'content/get_xtable',
editurl:'content/proc_xtable',
datatype: "json",
mtype: 'POST',
(省 略)
colNames:colNames1_1,
colModel:colModel1_1,
rowNum: 10,
rowList: rowList,
loadonce:false,
(省 略)
});
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQuery UI Accordion Plugin(jQ...
-
シンプルなweb版スタンプラリー...
-
URLのパラメータを取得しリンク...
-
引数なしの関数で疑問です
-
javascript で乱数(文字)を発...
-
ASP.NET MVCでObjectをjsに渡す
-
食材の期限を管理するためにGAS...
-
google apps scriptの終了のさせ方
-
JavaScriptで文字列の特定文字...
-
【西暦等の変換】
-
AM,PMの時間表示について
-
javascriptでiframeのURL変更は?
-
alert文に変数と文章を表示させ...
-
ジェネレーターの作り方
-
XMLの空白要素をJavas...
-
なぜmatchメソッドがエラーにな...
-
IE6.0でのオブジェクト座標の動...
-
JavaScriptで文字列の置き換え
-
<a>タグのテキストを取得
-
自動でリンクを実行する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#で、ContextMenuStripに動的...
-
ASP.NET MVCでObjectをjsに渡す
-
ローカルにあるファイルを検索...
-
C#OpenCv V4にのエラーに関する...
-
google apps scriptの終了のさせ方
-
イベントが初めの一回しか起き...
-
ジェネレーターの作り方
-
JavaScriptで文字列の特定文字...
-
javascriptでテーブルに追加し...
-
なぜmatchメソッドがエラーにな...
-
ASP.NETのコントロールの値をJa...
-
javascriptでiframeのURL変更は?
-
翌月を取得するGASが分かりません
-
1日1回だけ引けるjavascriptお...
-
商品コードを入力で、商品名、...
-
JavaScriptで平日のみをカウン...
-
jsによって検索プルダウン、都...
-
C# 演算 奇数と偶数 表現の仕方
-
GASでundefinedエラーが出ます
-
gas スプレッドシートがアクテ...
おすすめ情報