free-jqGrid filterToolbar删除后的搜索文本

时间:2016-05-09 14:51:06

标签: jquery search jqgrid free-jqgrid

我已经开始使用这里提供的free-jqGrid:https://github.com/free-jqgrid。我使用旧的服务器脚本来返回XML数据。之前我使用的是旧版本的jqGrid,我考虑转向这个新的free-jqGrid版本进行升级。

我遇到的问题是在过滤器工具栏中。

$("#jqGrid").jqGrid('filterToolbar');

当我填写过滤器工具栏并按ENTER时,服务器请求成功完成,过滤后的数据看起来正确加载...但是我刚刚在工具栏中输入的单词被擦除干净。以前,单词或短语将保留在那里,这是期望的行动。

我想知道是否有选项可以将搜索短语留在那里,还是我需要从服务器返回一个特殊值?

谢谢!

以下是网络代码:

<script src="/jqGrid/js/jquery-1.11.0.min.js"></script>
<script src="/CSS/blue_and_yellow/jquery-ui.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" media="screen" href="CSS/blue_and_yellow/jquery-ui.css" />

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.13.2/css/ui.jqgrid.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.13.2/js/jquery.jqgrid.min.js"></script>

<h1>Shipping History</h1>
<button id="back_to_shipping_menu">Back to Shipping Menu</button>
<table id="jqGrid"></table>
<div id="jqGridPager"></div>

<style type="text/css">

    .ui-jqgrid-btable {
        font-size: 14px;
    }

</style>

<script type="text/javascript">

jQuery(function($){

    $('#back_to_shipping_menu').button().click(function(){
        window.location.href = "/index.php/operations/production/shipping"
    });

    var lastSel;
    $("#jqGrid").jqGrid({
        url:'/phpAJAX/Master/master_grid_v1.php',
        postData:{
            'arg1':'new_shipping_history'
        },
        height: 'auto',
        shrinkToFit: true,
        width: Math.floor($(window).width()*.78),
        datatype: 'xml',
        mtype: 'POST',
        colNames:[
            'row_id',
            'Ship Date',
            'Insert/Label',
            'JobNum',
            'Qnty Shipped',
            'Ship_Type',
            'Carrier',
            'Time',
            'Status',
            'Confirm',
            'Date Confirm',
            'Customer'
        ],
        colModel:[
            {width:20,name:'row_id',hidden:true},
            {width:20,name:'ship_date'},
            {width:13,name:'insert_label'},
            {width:13,name:'jobnum'},
            {width:17,name:'Qnty_Shipped', formatter:'number', formatoptions: {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 0, defaultValue: "0"}},
            {width:20,name:'Ship_Type', edittype:'select'},
            {width:25,name:'Carrier', edittype:'select'},
            {width:20,name:'Time', edittype:'select'},
            {width:20,name:'Status', edittype:'select'},
            {width:10,name:'Ship_Confirm'},
            {width:20,name:'ship_ts', formatter: 'date', formatoptions: { srcformat: 'Y-m-d H:i:s', newformat: 'm/d/Y'}},
            {width:20,name:'Customer'}
        ],
        sortname: 'ship_ts',
        sortorder: 'desc',
        viewrecords: true,
        gridview: true,
        caption: 'Shipping History',
        rowNum: 20,
        rowList:[20,50,100],
        pager: '#jqGridPager'
    });
    $("#jqGrid").jqGrid('navGrid', '#jqGridPager', {edit:false,add:false, del: false, search: false, refresh:true});
    $("#jqGrid").jqGrid('filterToolbar');

})



</script>

1 个答案:

答案 0 :(得分:2)

感谢您提供错误报告!问题:我在免费的jqGrid中实现了基于当前过滤器恢复过滤器工具栏。该功能仅适用于stringResult: true模式,当jqGrid在一个filters参数内发送有关过滤器的所有信息时(请参阅here),就像使用高级搜索一样({{ 1}})。

在清理过滤器工具栏后使用旧功能和旧搜索。这是我在当前的免费jqGrid代码中修复的错误(参见the commit)。如果您需要使用版本4.13.2,那么您可以添加multipleSearch: true选项,这将删除恢复过滤器:

loadFilterDefaults: false