ホームページ >バックエンド開発 >C++ >サーバー側拡張機能を使用してJqgridでIDの代わりに都市名を表示するにはどうすればよいですか?

サーバー側拡張機能を使用してJqgridでIDの代わりに都市名を表示するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-23 06:57:11708ブラウズ

How to Display City Names Instead of IDs in Jqgrid Using Server-Side Extensions?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。