0

私の jqGrid は loadonce: true を使用しており、フィルター処理しようとしている列のペアがあります。「DeletedFlag」は、ビット フラグを持つ非表示の列です。列「削除されましたか?」表示され、何も表示されない (DeletedFlag == 0) またはタイムスタンプ (DeletedFlag == 1) が表示されます。

「削除済み」からフィルター入力をマップする方法はありますか? 以下のコード サンプルで試みたように、「DeletedFlag」に変更しますか? そうでない場合、「削除済み」を変更する方法はありますか? editoptions->値の文字列は、空または空でない文字列によるフィルタリングを有効にしますか?

{ name: 'DeletedFlag', index: 'DeletedFlag', hidden: true, searchoptions: { sopt: ['eq'], searchhidden: true }},
{
   name: 'Deleted?', index: 'DeletedFlag', width: 70, sortable: false, editable: false,
   stype: 'select', /*edittype: 'checkbox',*/ searchoptions: { value: ':All;0:No;1:Yes' }
}

編集: グリッド全体 + テスト データの投稿

$(function () {
            var grid = $("#PSGrid");

            // get values from Products table
            var prodValues = $.ajax({
                url: "jqGridHandler.ashx?oper=pVals",
                async: false,
                success: function (data) {

                }
            }).responseText;

            // get values from Environments table
            var envValues = $.ajax({
                url: "jqGridHandler.ashx?oper=eVals",
                async: false,
                success: function (data) {

                }
            }).responseText;

            // get values from ServerTypes table
            var typeValues = $.ajax({
                url: "jqGridHandler.ashx?oper=tVals",
                async: false,
                success: function (data) {

                }
            }).responseText;

            var lastsel = -1;

            // build the grid
            grid.jqGrid({
                url: 'jqGridHandler.ashx',
                editurl: 'jqGridEditor.ashx',
                datatype: 'json',
                height: 550,
                width: 'auto',
                colNames: ['ID', 'Product', 'Environment', 'Hostname', 'IP', 'Description', 'Type', 'Ports Used', 'DeletedFlag', 'Deleted?'],
                colModel: [
                    { name: 'ID', index: 'ID', width: 50, sortable: true, hidden: true, editable: false, key: true, sorttype: 'int' },
                    {
                        name: 'Product', index: 'Product', width: 125, sortable: true, editable: true,
                        stype: 'select', searchoptions: { value: ':All;' + prodValues, sopt: ['eq'] },
                        formatter: 'select', edittype: 'select', editoptions: { value: prodValues },
                        editrules: { required: true }
                    },
                    {
                        name: 'Environment', index: 'Environment', width: 100, sortable: true, editable: true,
                        stype: 'select', searchoptions: { value: ':All;' + envValues, sopt: ['eq'] },
                        formatter: 'select', edittype: 'select', editoptions: { value: envValues },
                        editrules: { required: true }
                    },
                    {
                        name: 'Hostname', index: 'Hostname', width: 200, sortable: true, editable: true,
                        editrules: { required: true }
                    },
                    {
                        name: 'IP', index: 'IP', width: 125, sortable: false, editable: true
                    },
                    {
                        name: 'Description', index: 'Description', width: 200, sortable: true, editable: true,
                        editrules: { required: true }
                    },
                    {
                        name: 'Type', index: 'Type', width: 75, sortable: true, editable: true,
                        stype: 'select', searchoptions: { value: ':All;' + typeValues, sopt: ['eq'] },
                        formatter: 'select', edittype: 'select', editoptions: { value: typeValues },
                        editrules: { required: true }
                    },
                    { name: 'Ports Used', index: 'Ports Used', width: 80, sortable: false, editable: true },
                    { name: 'DeletedFlag', index: 'DeletedFlag', hidden: true, searchoptions: { sopt: ['eq'], searchhidden: true }},
                    {
                        name: 'Deleted?', index: 'Deleted?', width: 70, sortable: false, editable: false,
                        stype: 'select', /*edittype: 'checkbox',*/ searchoptions: { value: ':All;0:No;1:Yes' }
                    }
                ],
                rowNum: 10000, // show all rows hack (-1 is the proper way to do it but is bugged in this version of jqGrid)
                pager: '#PSGridPager',
                sortname: 'ID',
                pgbuttons: false,
                pgtext: null,
                viewrecords: false,
                sortorder: 'asc',
                ignoreCase: true,
                caption: 'Click a row to edit.  [Enter] to save, [Esc] to cancel.',
                loadonce: true,
                onSelectRow: function (id) {
                    if (id && id !== lastsel) {
                        grid.jqGrid('restoreRow', lastsel);
                        grid.jqGrid('editRow', id, true);
                        lastsel = id;
                    }
                },
                afterSubmit: function (response, postdata) {
                    $(this).jqGrid('setGridParam', { datatype: 'json' });
                    alert('hello');
                    return [true];
                }
            });

            grid.jqGrid('filterToolbar', { stringResult: true, searchOnEnter: true, defaultSearch: "cn" });
            grid.jqGrid('navGrid', '#PSGridPager', { edit: false, add: true, del: true, search: false, refresh: true, paging: false },
                { /* edit options */ },
                { /* add options */
                    closeOnEscape: true,
                    closeAfterAdd: true,
                    reloadAfterSubmit: true,
                    width: 400
                },
                { /* delete options */
                    closeOnEscape: true,
                    reloadAfterSubmit: true
                });
            grid.jqGrid('navButtonAdd', '#PSGridPager', {
                caption: "Export to Excel",
                onClickButton: function () {
                    grid.jqGrid('excelExport', { url: "jqGridHandler.ashx" });
                }
            });
        });

一般的な行 (カンマ区切り):

'A4'、'テスト/QA'、'BLDALTSGPOOFF04'、'192.168.86.190'、'IIS 7 Web ファーム'、'Web'、'80'、''

4

1 に答える 1

1

name: 'IsDeleted', index: 'DeletedFlag'「IsDeleted」列で使用できるようです。名前をに変更することをお勧めします (名前name: 'Ports Used', index: 'Ports Used'name: 'PortsUsed', index: 'PortsUsed'空白を使用しないでください)。

デモは、必要に応じてデータをフィルタリングするようです。デモで使用した JSON データ

[
    ["10", "A4", "Test/QA", "BLDALTSGPOOFF04", "192.168.86.190",
     "IIS 7 Web Farm", "Web", "80", "0", ""],
    ["20", "A5", "Test/QA", "BLDALTSGPOOFF05", "192.168.86.178",
     "IIS 6 Web Farm", "Web", "8080", "1", "2013-06-26 17:02:02.843"]
]

グリッドの入力として。

おすすめをもう一つ。グリッドを作成する前に、現在3 つの同期Ajax 呼び出し ( ) を使用しています。サーバーからのJSONレスポンスとは別のデータを使って表示したいのでasync: false使えないのではないでしょうか。そのような行為は良くありません。からのメインの JSON 応答の一部と同じ情報を配置することをお勧めします。コールバック内では、データにアクセスでき、setColPropメソッドを使用してまたはのプロパティを変更できます。コールバックでそのような変更を行う場合は、 jqGrid が JSON 応答を処理する前にこれを行います。したがって、jqGrid はプロパティの変更された値を使用します。dataUrlformatter: 'select'jqGridHandler.ashxbeforeProcessingvalueeditoptionssearchoptionsbeforeProcessingvalue

于 2013-06-28T14:46:12.947 に答える