0

親テーブルの行を展開してサブグリッドを表示しようとすると、渡されるIDがjavascriptによって生成されます。したがって、親テーブルの最初の行は1のROWIDを取得し、2番目は2のROWIDを取得します。したがって、クリックして各サブグリッドを展開すると、呼び出されるURLはとmyurl.html?q=1ですmyurl.html?q=2。クエリの一部を使用してq=?、サブグリッドの行をフェッチしています。

ただし、問題は、私の親行が一意のIDでデータベースに保存されている1 2 3 etc.ことです。これは、Mysqlによって自動生成されたIDではありません。

質問

親グリッドまたはサブグリッドの動作を変更して、サブグリッドが自動生成されるのではなく展開されたとき1, 2, 3, etc.に、DBにある親行の実際のIDを取得するようにするにはどうすればよいですか。

4

1 に答える 1

1

「自動生成された1、2、3など」について書きました。正しくない方法でグリッドを埋めていることを示しています。サーバーから返されるデータには、行 ( )idとして使用され、頻繁に行 ID として名前が付けられている必要があります。jqGrid が入力データ内の行 ID に関する情報を見つけられない場合にのみ、値 1、2、3 などがデフォルトで使用されます。id<tr>

このような動作は、データベースからのネイティブID をグリッドの行に持っている場合に悪いだけではありません。さらに悪いことに、ページに複数のグリッドがある場合、またはサブグリッドを持つグリッドがある場合、ID の重複を受け取る可能性があります。

したがって、次の 2 つのルールに従う必要があります。

  1. ID が存在する場合、データベースからネイティブ ID を含むデータを返します。
  2. サブグリッドを使用するidPrefix場合、またはページに複数のグリッドがある場合に使用します。

answerthis oneを読むことをお勧めします。別の答えもあなたにとって興味深いかもしれません。

于 2012-10-22T11:47:46.767 に答える