2016-05-09 10 views
0

Ich habe begonnen, die freie jqGrid hier verfügbar: https://github.com/free-jqgrid. Ich habe es mit einem alten Server-Skript arbeiten, die XML-Daten zurückgeben. Ich habe vorher eine ältere Version von jqGrid verwendet und erwäge, auf diese neue Version von free-jqGrid ein Upgrade zu übertragen.free-jqGrid filterToolbar entfernt Suchtext nach

Das Problem, das ich habe, ist in der Filter-Symbolleiste.

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

Wenn ich in der Filterleiste ein und drücken Sie fülle ENTER wird die Serveranfrage erfolgreich durchgeführt und die gefilterten Daten sehen aus wie es richtig lädt ... aber dann das Wort, das ich gerade in der Werkzeugleiste eingegeben wird sauber gewischt. Vorher würde das Wort oder die Phrase dort bleiben, was die gewünschte Aktion ist.

Ich frage mich, ob es eine Option gibt, den Suchbegriff dort zu lassen, oder muss ich einen speziellen Wert vom Server zurückgeben?

Danke!

Hier ist der Web-Code:

<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

Welche Version des freien jqGrid Sie (4.13.2, die neueste Quelle von GitHub) verwenden? ** Können Sie die Demo zur Verfügung stellen, mit der das Problem reproduziert werden kann? ** Haben Sie das gleiche Problem, wenn die Daten lokal gesucht werden? (Es ist viel einfacher, das Problem zu testen, wenn es mit einem einfachen Testfall ohne zusätzliche Kommunikation mit dem Server reproduziert werden kann.). Ich nehme an, dass man das Problem leicht beheben kann, indem man die 'loadFilterDefaults: false'-Option von' filterToolbar' hinzufügt, aber ich würde lieber ** den Ursprung ** des Problems finden, anstatt den nützlichen Standard 'loadFilterDefaults: true' auszuschalten. – Oleg

+0

Ja, es ist 4.13.2. Sowohl CSS als auch JS. Ich werde den Webcode in meine Frage einfügen, und ich werde versuchen, den Servercode zu bekommen, obwohl es irgendwie ein Monster ist. –

Antwort

2

Vielen Dank für den Bug-Report! Das Problem: Ich implementierte in free jqGrid die Filter-Toolbar basierend auf dem aktuellen Filter. Die Funktion funktioniert nur im Falle des stringResult: true Modus, wenn jqGrid alle Informationen über den Filter innerhalb eines filters Parameters sendet (siehe here), wie im Falle der Verwendung erweiterte Suche (multipleSearch: true).

Die Verwendung der neuen Funktion mit Legacy-Suche zur Reinigung der Filtersymbolleiste. Es ist der Bug, den ich im aktuellen Code von free jqGrid behoben habe (siehe the commit). Wenn Sie die Version 4.13.2 verwenden müssen, dann können Sie loadFilterDefaults: false Option hinzufügen, die den Filter entfernen wird die Wiederherstellung:

$("#jqGrid").jqGrid('filterToolbar', { loadFilterDefaults: false }); 
+0

das 'loadFilterDefaults: false' reparierte das Problem für mich, um zu wissen. Mit der neuen Version werde ich das entfernen. –

Verwandte Themen