1

無料の jqgrid を使用していますが、短くするために、beforeProcessing() で以下のコードを使用して jqgrid の高さを設定しようとすると、 fixScrollOffsetAndhBoxPadding にメソッドが見つかりません。

$grid.setGridHeight(200).trigger("reloadGrid");

高さを設定する必要がある理由は、rownNum が <10 の場合、高さを自動にしたいからです。しかし、rowNum が >10 の場合、グリッドに垂直スクロールバーが必要です。しかし、この高さを設定すると、「fixScrollOffsetAndhBoxPadding はオブジェクトまたはプロパティではありません」という JavaScript エラーが表示されます。

エラー: SCRIPT438: オブジェクトはプロパティまたはメソッド 'fixScrollOffsetAndhBoxPadding' をサポートしていません jquery.jqgrid.min.js、行 202 文字 381

4

1 に答える 1

1

問題の原因は、グリッドを作成するsetGridHeightの誤った使用または使用である可能性があると思います(たとえば、間違っている可能性があり、代わりに使用する必要があります)。コードのどこで行を使用するかを投稿していません。フリー jqGridは、グリッドの作成中 (呼び出される前) のプロパティを設定します。setGridHeight $grid$grid$(this)fixScrollOffsetAndhBoxPadding$grid[0]onInitGrid

reloadGridもう 1 つ重要な注意点があります。他のコールバック内で を使用する場合は、常に細心の注意を払う必要があります。同期reloadGrid的に動作することを理解する必要があります。これは、終了後に次の行が実行されることを意味します。たとえば、サーバーから返された 5 番目のページを読み込みます。の呼び出しはjqGrid のパラメーターをリセットし、変更したり、新しい Ajax リクエストを配置したりできます。そのため、 の内部でのみ使用することを強くお勧めします。jqGridが現在のリクエストを最後まで処理し、後でリロードできるようにする方法:reloadGrid trigger("reloadGrid")trigger("reloadGrid")pagedatatypetrigger("reloadGrid")setTimeout

$grid.setGridHeight(200);
setTimeout(function () {
    $grid.trigger("reloadGrid");
}, 50);

上記が役に立たない場合は、1)エラーを報告するjquery.jqgrid.src.js代わりに使用する必要があります。jquery.jqgrid.min.js2) 使用している無料の jqGrid のバージョン (4.9.1、4.9、または GitHub の現在のコード) を記述します。3)問題を再現するために使用できるより完全な例を投稿してください。コードをデバッグすることで問題の原因を簡単に突き止めることができますが、コードが 1 行 (または小さなコードの断片) しか表示されない場合は、その理由を推測する必要があります。

于 2015-07-26T11:01:32.213 に答える