Jqgrid サーバー側拡張機能: 間接的なデータ関係の処理
このガイドでは、間接的なデータ関係を管理するサーバー側拡張機能を利用して、Jqgrid 内で数値 ID の代わりに説明的な都市名を表示する方法を説明します。 この例には、Students
(SID、SNAME、CITY) と Locations
(CID、CNAME) の 2 つのテーブルが含まれています。 課題は、現在 CNAME
(都市 ID) を格納している Jqgrid の CITY
列に CID
(都市名) を表示することにあります。 Student
クラスのデータ構造のため、データベースへの直接結合は適していません。
この解決策には、サーバーの JSON 応答を拡張して、必要なマッピング情報を含めることが含まれます。 colModelOptions
列を動的に設定するための CITY
プロパティを導入します。
<code class="language-json">{ "colModelOptions": { "CITY": { "formatter": "select", "edittype": "select", "editoptions": { "value": "11:Chennai;13:Delhi;12:Mumbai" }, "stype": "select", "searchoptions": { "sopt": [ "eq", "ne" ], "value": ":Any;11:Chennai;13:Delhi;12:Mumbai" } } }, "rows": [ { "SID": "1", "SNAME": "ABC", "CITY": "11" }, // ... more rows ] }</code>
この JSON 応答は、都市名を表示するために必要なデータを Jqgrid に提供します。 editoptions.value
プロパティは、ID と名前の間のマッピングを定義します。
Jqgrid の beforeProcessing
イベント ハンドラーは、次の列オプションを動的に適用します。
<code class="language-javascript">beforeProcessing: function (response) { var $self = $(this), options = response.colModelOptions, p; if (options != null) { for (p in options) { if (options.hasOwnProperty(p)) { $self.jqGrid("setColProp", p, options[p]); // ... any additional processing } } } }</code>
このコードは colModelOptions
を反復処理して、Jqgrid 内の CITY
列のプロパティを更新します。 この動的な構成により、ID の代わりに都市名が表示されるようになり、よりユーザーフレンドリーで直感的なグリッドが実現します。 この方法では、データベース構造を変更したり、非効率なクライアント側の検索を使用したりすることなく、間接的なデータ関係を効果的に管理できます。
以上がサーバー側拡張機能を使用してJqgridでIDの代わりに都市名を表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。