JQGrid日期排序和搜索

时间:2015-09-08 09:57:51

标签: javascript jquery asp.net-mvc date jqgrid

我目前正在jqgrid中显示一组特定的数据。我想排序和搜索列作业日期,但它不起作用。

日期显示为 2015-08-26 ,但排序和搜索均无效。

我错过了什么。

var gridSelector = "#tblist";
    var emptyMsgDiv = $("<div style=\"text-align:center\"><span style='color:red;font-size:24px'>No records found</span></div>");
    jQuery(gridSelector).jqGrid({
        url: '@Url.Action("ListActivities", "DailyActivity")',
        loadonce: true,
        datatype: 'json',
        shrinkToFit: true,
        autowidth: true,
        mtype: 'GET',
        ignoreCase: true,
        colNames: ['Edit', 'ActivityID', 'Job No', 'Job Date',...],
        colModel: [
            { name: 'Edit', index: 'Edit', formatter: EditBind, width: '50px', search: false, sortable: false },
            { name: 'ActivityID', index: 'ActivityID', hidden: true },
            { name: 'DOWJobNumber', index: 'DOWJobNumber', align: 'left', width: '100px' },
            {
                name: 'DOWJobDate', index: 'DOWJobDate', width: '70px',
                formatter: 'date',
                sorttype: 'date',
                formatoptions: {srcformat:'ISO8601Long', newformat: 'ISO8601Short' },
                datefmt: 'ISO8601Short',
                searchoptions: {
                    sopt: ['eq', 'gt', 'ge'],
                    dataInit: function (el) {
                        $(el)
                            .datepicker({ dateFormat: "yy-mm-dd" })
                            .change(function () {
                                $(gridSelector)[0].triggerToolbar();
                            });
                    }
                }
            },
            { ... },...
        ],
        height: 'auto',
        pager: '#gridpager',
        rowNum: 20,
        rowList: [5, 10, 20, 50, 100],
        sortname: 'ActivityID',
        sortorder: 'desc',
        jsonReader: {
            repeatitems: false,
            root: function (obj) { return obj; },
            page: function (obj) { return 1; },
            total: function (obj) { return 1; },
            records: function (obj) { return obj.length; }
        },
        loadError: function (xhr, st, err) {
            bootbox.alert("Error retrieving data!");
        },
        emptyrecords: 'No Records found',
        loadComplete: function () {
            emptyMsgDiv.insertAfter($('#tblist').parent());
            var ts = this;
            if (ts.p.reccount === 0) {
                $(this).hide();
                emptyMsgDiv.show();
            } else {
                $(this).show();
                emptyMsgDiv.hide();
            }
        }
    })
    .jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false, defaultSearch: "cn" });

编辑:看起来像是在JSON格式上进行搜索( / Date(1430937000000)/ )。如何将其更改为使用指定的日期格式进行搜索和排序

1 个答案:

答案 0 :(得分:0)

我必须将日期时间格式化为控制器中的文本并在JQGrid中处理它,如下所示

{
    name: 'DOWJobDateText', index: 'DOWJobDateText', width: '80px',
    formatter: 'date',
    sorttype: 'date',
    formatoptions: { srcformat: 'd/m/Y', newformat: 'd/m/Y' },
    datefmt: 'd/m/Y',
    searchoptions: {
        dataInit: function (el) {
        $(el)
        .datepicker({ dateFormat: "dd/mm/yy" })
        .change(function () {
                $(gridSelector)[0].triggerToolbar();
            });
        }
    }
}