1

私はjQueryとjQGridの両方が初めてです。サーバーからのデータをグリッドのドロップダウン コンボボックスに入力しようとしましたが、Java サーブレット環境にいます。私は dataUrl メソッドと他の多くのメソッドを使用しましたが、コンボを設定することはまだうまくいきません。

私のjsは次のようになります:

...
{name:'idTipologia',index:'idTipologia', width:80,editable: true,edittype:"select",editoptions:{dataUrl: "/sohara/comboTipologiaAction.do"}...
...

私のサーバー側のコードは基本的に次のとおりです。サーバーからリストを取得し、データをフォーマットし(jsonであるかどうかに関係なく)、PrintWriterを開き、情報を書き込みます。

JSON 変換と Firebug のプレーン テキストの両方を試してみましたが、応答が正しくフォーマットされている ("1:VALUE1;2:VALUE2") ことがわかりますが、ドロップダウンは空のままです。

私の質問は:

このコンボ人口を作るためにデータを整理する独特の方法はありますか?

どんな助けでも感謝します。

4

1 に答える 1

2

jqGrid documentationによると、問題はJSON ではなく、要素dataUrlを含む HTML を返す必要があることです。SELECT

editoptions dataUrl パラメータは、edittype:select の要素に対してのみ有効です。dataUrl パラメーターは、html select 要素を取得する URL を表します。

このオプションが設定されている場合、要素には AJAX リクエストからの値が入力されます。データは、必要なオプションを含む有効な HTML select 要素である必要があります。次のようなものです。

<select> 
<option value='1'>One</option> 
<option value='2'>Two</option> 
...
</select>

したがって、最も簡単な解決策は、HTML を返すことです。


とはいえ、UI 要素を直接返すという考えは好きではありません。別のオプションは、関数を使用して要素buildSelectを構築することです。SELECT

このオプションは、dataUrl パラメータが設定されている場合にのみ関連します。サーバーの応答が選択要素を構築できない場合、独自の関数を使用して選択を構築できます。この関数は、dataUrl オプションで説明されているように、選択値とオプション値を含む文字列を返す必要があります。この関数に渡されるパラメーターは、サーバーの応答です

この回答は、使用方法の例を提供しますbuildSelect

于 2012-07-16T19:00:01.993 に答える