Mil*_*ric 7 asp.net-mvc jquery json jqgrid asp.net-mvc-3
我有一个ASP.NET MVC 3页面.在它上面,我有一个表,我使用来自ajax调用的JSON数据转换为jqGrid.网格具有以下设置:
myGrid = $('#myGrid');
myGrid.jqGrid({
    caption: 'My Grid',
    datatype: 'local',
    data: data.rows,
    height: 250,
    pager: '#myPager',
    viewrecords: true,
    colModel: [
        ...,
        {
            label: 'blah',
            name: 'blah',
            align: 'left',
            sortable: true,
            editable: false,
            width: 85,
            formatter: 'date',
            sorttype: 'date',
            datefmt: 'm/d/Y',
            formatoptions: { srcformat: 'm/d/Y', newformat: 'm/d/Y' }
        },
        ...
    ]
});
// turn on filter toolbar
myGrid.filterToolbar();
data.rows从ajax调用返回.除了一个以外,这种方式都有效.我可以对客户端进行分页,对客户端进行排序,并按照我显示colModel的字段进行搜索.这个'blah'字段是一个日期字段,它以mm/dd/yyyy格式正确显示日期.但是,当我在工具栏中键入类似11/17/2010的内容并按Enter键时,搜索将返回0条记录.
所以我深入研究了jqGrid代码,这是它在搜索之前生成的内容:
{"groupOp":"AND","rules":[{"field":"blah","op":"bw","data":"11/17/2010"}]}
最终,当它遍历每一行并且它评估字段上的操作时,eval(m)&& p.push(this)行,m是这样的:
(String(this.blah).substr(0,10) == String("11/17/2010"))
基本上,在我看来它并不认为该字段是一个日期.它调用parse而不是parseDate.任何人有任何想法如何解决这个问题?我知道搜索服务器端很容易,我可以传递该字符串,解析它,然后bam.但如果可以,我想留在客户方面.我能够在Oleg和Tom提出的一些样本中复制这个,所以这是一个问题,或者我在配置中遗漏了一些东西......
我发现你的问题很有趣,所以我对你的问题+1。因为你发布了这条线
\n\n(String(this.blah).substr(0,10) == String("11/17/2010"))\neval在本地搜索期间使用我想你花了很多时间来理解本地搜索是如何实现的。因为你看到上面的行(参见(String(this.blah).substr(0,10) ...)不是应该做的( 的值String(this.blah)将是“2010-11-17”而不是“11/17/2010”),你可以覆盖 jqGrid 的相应函数( )_getStr中的函数$.jgrid.from并以这种方式解决问题。
前段时间我花了很多时间准备了相应的demo,演示了这个技术。该演示是在 trirand 论坛上作为答案准备的。在这个问题中,我们想要找到字符串,就像\'b\xc3\xa9nevise\'搜索\'benevise\'. 因此,必须实现真正自定义的本地搜索。我希望这些信息足以让您解决您所描述的问题。
更新:在我看来,我找到了一个更简单的解决方法。您应该只定义包含数据的列searchoptions: {sopt: [\'eq\',\'ne\']}。\'blah\'那么"bw"(开头)将不会用于该列。“等于”和“不等于”操作在本地搜索中正常工作。
更新2:这是我使用选项的工作示例sopt。
| 归档时间: | 
 | 
| 查看次数: | 11366 次 | 
| 最近记录: |