4 Stimmen

Suche in der Mitte einer Spalte standardmäßig in jqGrid mit Toolbar-Suche

Nach der Lektüre des jqGrid-Wikis (und anhand von Beispielen aus: Groß-/Kleinschreibungsunabhängige Suche in jqGrid einschließlich versteckter Felder ), kann ich nicht finden, was ich tun möchte.

Gibt es eine Suchoption, die eine Suche an beliebiger Stelle in einer Spalte ermöglicht (mit automatischem Platzhalter)?

Wenn die Spalte "Apple Iphone" enthält, kann ich sie mit der Suche "iphone" finden.

Das SQL-Äquivalent würde lauten select * from table where lower(columnX) like '%iphone%';

17voto

Oleg Punkte 219333

Da Sie die Toolbar-Suche die Lösung für Ihr Problem scheint einfach zu sein. Sie sollten:

  1. einschließen. ignoreCase:true zu den jqGrid-Parametern
  2. einschließen. defaultSearch:'cn' Option zum Aufruf von filterToolbar . Zum Beispiel: $("#list").jqGrid('filterToolbar', {defaultSearch:'cn'}) .
  3. Wenn Sie eines der Auswahlelemente in der Suchsymbolleiste verwenden ( stype:'select' ) sollten Sie in die Liste der searchoptions die sopt Optionen, die mit 'eq' beginnen: stype:'select', searchoptions: {sopt:['eq','ne']} zum Beispiel.

1voto

Bijendra Punkte 8207
$(document).ready(function() {
  colNamesData = [ 'Description']

  {name:'description',index:'description', width:130, sorttype:"text", search:true, editable:true, edittype:"textarea", editoptions: {rows:"5",cols:"25",maxlength:"255"}, stype:'text', searchoptions:{sopt:['cn', 'nc', 'bw', 'bn', 'ew', 'en']}},

$("#description_table").jqGrid({
      datatype: "local", 
      height: "auto",
      autowidth: true,
      ignoreCase: true,
      colNames: colNamesData, 
      colModel: colModelHash,
      pager: '#pager',
      rowNum:10,
      rowList:[10,25,50,100],
      sortname: 'date',
      sortorder: 'desc',
      viewrecords: true,
      editurl:"/url_name.json", 
      caption: 'Description'
 data:<%= raw @jqgrid_table.to_json %>
   });

   jQuery("#description_table").jqGrid('navGrid','#pager',{del:false,add:true,edit:false},{}, {modal: true,afterSubmit:processAddEdit,recreateForm:true, afterComplete:reloadJqGrid}, {modal: true}, {multipleSearch:true});  

Wenn Ihr Text "here i go" enthält und Sie nach "go" suchen, wird er sicher gefunden, bei mir funktioniert es.

Versuchen Sie es und antworten Sie, wenn es nicht klappt.

1voto

vineetpeeyuse Punkte 61
$("#list").jqGrid('filterToolbar', {stringResult: true, searchOnEnter: false, defaultSearch : "cn"});

Im obigen Beispiel ist die **defaultSearch : "cn"** wird verwendet, um eine beliebige Teilzeichenkette des gesuchten Elements zu suchen. Entfernen von defaultSearch : "cn" beginnt die Suche ab der Teilzeichenkette.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X