1

動的に Jqgrid に列をロードする必要があり、 jqGrid と動的列バインディングに従おうとしています

MVCで試しています。列名については、テーブル (GRID に表示される列のリストがある) から取得し、簡単な Json データを返します。

ColModel の実装方法を教えてください。例: このような JSON オブジェクトを動的に送信する必要があります

     {name: 'Airport', formatter: UrlFmatter, width: 95, align: "center", index: 'AIRPORT', searchoptions: { sopt: ['eq', 'ne', 'cn']} }
  {name: 'Country', width: 100, align: "center", index: 'Country', searchoptions: { sopt: ['eq', 'ne', 'cn']} }

json を送信して colModel を設定するには、どのように設計する必要がありますか?

私の UrlFmatter コード

function UrlFmatter(cellvalue, options, rowObject) {
                    return "<a href='DetailResult?airportname=" + options.rowId + "' >" + cellvalue + "</a>";
                }

フォーマットとアンフォーマットについてのあなたの答えに従って、どのように書きますか? ありがとう

4

1 に答える 1

1

フォーマッター ( formatter: UrlFmatter) に関する情報を JSON 内で送信する際に問題があると思います。JSON 文字列は、データの型として関数をサポートしていません。問題を解決する最も簡単な方法は、標準のフォーマッターと同じ方法でフォーマッターを登録することです。たとえば、フォーマッタ"myUrlFormatter"に次のような名前を付けたい場合

(function ($) {
    'use strict';
    /*jslint unparam: true */
    $.extend($.fn.fmatter, {
        myUrlFormatter: function (cellValue, options) {
            // you should place here the code of 
            // your custom formatter UrlFmatter
        }
    });
    $.extend($.fn.fmatter.myUrlFormatter, {
        unformat: function (cellValue, options, elem) {
            // you should place here the code of 
            // your custom unformatter
        }
    });
}(jQuery));

の後 jquery.jqGrid.min.js(または の後)にコードを含める必要がありますjquery.jqGrid.src.jscolModelこのようなフォーマッタの登録後、次のように使用できます

{name: "Airport", index: "AIRPORT", formatter: "myUrlFormatter", width: 95,
    align: "center", searchoptions: { sopt: ["eq", "ne", "cn"]} }

formatterそのため、プロパティの値は関数 ( ) ではなく文字列( ) になります。formatter: "myUrlFormatter"formatter: UrlFmatter

于 2013-03-14T14:42:32.007 に答える