1

我一直在研究使用 filterToolbar 按日期时间过滤 jqGrid。

我的问题是基于 Olegs 的出色回答

我终于想出了如何在日期触发工具栏搜索,如下所示:

colModel: [{
    name: 'RequestDate',
    index: 'RequestDate',
    formatter: 'date',
    formatoptions: {
        newformat: 'm/d/Y h:iA'
    },
    searchoptions: {
        sopt: ['eq'],
        dataInit: function (elem) {
            $(elem).datepicker({
                changeYear: true,
                changeMonth: true,
                onSelect: function (dateText, inst) {
                    setTimeout(function () {
                        $('#MyGrid')[0].triggerToolbar();
                    }, 50);
                }
            });
        }
    }
}]

现在,当从选择器中选择日期时,我想返回给定日期的所有记录,而忽略时间。

我尝试过更新该FilterObjectSet方法,但没有成功。有没有人能够成功实现这一点?

我尝试过的:(请参阅 Olegs 链接解决方案中的代码)

将 FormatMapping 设置为"(dateadd(dd,0, datediff(dd,0, it.{0})) = @p{1})"并将 System.DateTime 添加到 switch 语句:

case  "System.DateTime":
                        param = new ObjectParameter("p" + iParam, Convert.ToDateTime(rule.data));
                        break;

但这会导致 EntitySqlException:

'dateadd' cannot be resolved into a valid type or function.

有没有人有办法解决吗?

4

1 回答 1

0

好吧,今天早上想通了:

添加了一个新的操作:

de //de - date equals

向 FormatMapping 添加了一个新字符串,该字符串使用SqlServer.datediff

"(SqlServer.datediff('DAY', it.{0} , @p{1}) = 0)" //de - date equals

并添加了日期大小写:

case  "System.DateTime":
    param = new ObjectParameter("p" + iParam, Convert.ToDateTime(rule.data));
break;

将 colModel 中的 sopt 更改为sopt: ['de']

于 2012-09-05T07:16:44.973 回答