グリッドでは、ユーザーが一番下の行にテキストを入力した後、必要に応じて別の行を追加できるように別の行を追加します。グリッドは、ユーザーが必要に応じて拡大します。これはうまくいきますが、ページのリロードとdbからのデータ入力後、addrowdata()関数は既存の行IDを受けず、重複を作成します。 jqg1。既存の行IDを参照し、新しい一意IDを作成する必要があります。したがって、既に5つの行がある場合は、jqg6から始まる可能性があります。予想通り、私はまた、代わりに未定義、同じ結果の)$ .jgrid.randIdを(試してみましたjqgrid randId()はページリロード後に重複を生成します
var records = jQuery("#table-1").jqGrid('getGridParam', 'records');
var lastRowId = jQuery("#table-1").jqGrid('getDataIDs')[records - 1];
if (lastRowId == id)
{
jQuery('#table-1').addRowData(undefined, {}, 'last');
}
:ここonCellSelect内の関連するコードです。
おかげ
ライアン
ありがとう@Oleg、私はあなたが答えたいと思っていました。実際にはjqg1の値をデータベースに保存していて、グリッドがページの再読み込み時に満たされたときにこれらのIDを使ってグリッドを再作成しています。グリッドに、データベースに保存するユニークなIDを作成したいと思います。この方法では、私はdbに行く必要はありません、誰かが行のクライアント側を追加するたびに、最も魅力的な、増加を見つける。 – krazy
@krazy:私はそれが良いとは思わない。私が知っているすべてのデータベースには、ある種のAutoIncrement整数型が含まれています。たとえば、SQLでは 'int IDENTITY(1,1)NOT NULL'または' int PRIMARY KEY IDENTITY'で列を宣言できます。他の例については、[here](http://www.w3schools.com/sql/sql_autoincrement.asp)を参照してください。 JavaScriptで生成されたIDの使用法として、より安全な方法です。どのデータベースを使用していますか? – Oleg
問題は、一意の行IDを作成することでした。$ .jgrid.randIdは既存の値を調べません。テーブルには複合主キーがあります。私は自分のrowIdを作成します、ありがとう。 – krazy