jqGrid filter-Symbolleiste anzeigen-Suche Betreiber Selektor nur für einzelne Spalte

Habe ich jqGrid Tabelle mit vielen Spalten. Die Suche im Netz gemacht wird, mit filter-Symbolleiste. Für die meisten von Ihnen suchen, ist halt einfach Standard-operator. Für eine datetime-Spalte möchte ich verschiedene Art von Operatoren und ein Datumsauswahl-Selektor.
Ich habe dataInit datepicker-Initialisierung searchoptions notwendig Operatoren searchoptions.sopt. Um dies zu zeigen Betreiber, die ich searchOperators zu wahren. Also für diese Spalte alles ok ist. Ich habe datepicker mit operator selector-popup. Aber für alle anderen Spalten Standard-operator-Symbol auf der linken Seite angezeigt. Es ist ärgerlich, wie-operator ist Standard-und Benutzer konnte es nicht ändern. So gibt es einige Möglichkeit, Sie zu verstecken mit jqGrid-API? Soweit ich sehen konnte, ich mich verstecken konnte diese nur mit meinem custom-code:

Ich zu meiner Spalte Modell und nach dem Rendern des grid (kann in loadComplete) für alle Spalten, die leer sopt oder sopt.length == 0 zu entfernen operator selector. Oder fügen Sie CSS-Klasse, die es verstecken. Nicht sicher, welche dieser Lösung ist besser (verstecken oder zu entfernen), da entfernen könnte, brach eine gewisse Logik, und verstecken könnte Auswirkungen auf die Berechnung der Breite. Hier ist Beispiel, was ich meine, auf fiddle

function fixSearchOperators()
{
    var columns = jQuery("#grid").jqGrid ('getGridParam', 'colModel');
    var gridContainer = $("#grid").parents(".ui-jqgrid");
    var filterToolbar = $("tr.ui-search-toolbar", gridContainer);

    filterToolbar.find("th").each(function()
    {
        var index = $(this).index();
        if(!(columns[index].searchoptions &&
             columns[index].searchoptions.sopt &&
             columns[index].searchoptions.sopt.length>1))
        {
            $(this).find(".ui-search-oper").hide();
        }
    });
}

Hat jemand bessere Ideen?

InformationsquelleAutor Yauhen.F | 2013-07-17

Schreibe einen Kommentar