Frage

Ich habe mir das angesehen Dokumentation Aber ich konnte keine Antwort finden. Gibt es eine Möglichkeit, zu verhindern, dass eine Reihe bei Auswahl hervorgehoben wird? Das oder sogar ein Weg, die Reihe zu verhindern, überhaupt ausgewählt zu werden. Ich mag die Option "Hoverrows: True", aber im Idealfall möchte ich verhindern, dass eine Zeile vor Klick ausgewählt wird.

Vielen Dank,

Aktualisieren:Ich konnte etwas "hackig" implementieren, das ein Interim -Fix zu sein scheint. Ich mag es überhaupt nicht wirklich und würde eine bessere Lösung mögen, wenn es eine gibt ...

Ich habe festgestellt, dass wenn ich die Option übergehe

onSelectRow: function(rowid, status) {
    $('#'+rowid).removeClass('ui-state-highlight');
}

Wenn ich das JQGrid instanziiere, kann ich das Highlight ausziehen, wenn er hinzugefügt wird.

Gibt es einen anderen, idealeren Weg, dies zu tun?

War es hilfreich?

Lösung

Verwenden Sie den folgenden Code:

beforeSelectRow: function(rowid, e) {
    return false;
}

Andere Tipps

Wenn Sie, wie ich, eine Wilde JQGrids haben und OnSelectrow für jeden einzelnen nicht außer Kraft setzen möchten, ist hier eine globale Version von Reigels Lösung, die für mich gut funktioniert hat:

jQuery.extend(jQuery.jgrid.defaults, {
    onSelectRow: function(rowid, e) {
        $('#'+rowid).parents('table').resetSelection();
    }
});

Ich nehme an, Sie könnten dies in der CSS direkt ansprechen. Überschreiben Sie einfach die Werte für UI-State-Highlight für Ihre spezifische Tabelle

#table_id tr.ui-state-highlight {
  border: inherit !important;
  background: inherit !important;
  color: inherit !important;
}

#table_id tr.ui-state-highlight a {
  color: inherit !important;
}

#table_id tr.ui-state-highlight .ui-icon {
  background-image: inherit !important;
}

Ich habe den Wert verwendet inherit Nur als Beispiel: Sie müssen wahrscheinlich einige Werte aus Ihrem Thema kopieren.css, um diese Funktion zu machen.

Versuchen:

onSelectRow: function(rowid, status) {
    $("#grid_id").resetSelection(); //Resets (unselects) the selected row(s). Also works in multiselect mode.
}

Sie können Dokumentationen lesen hier. Hoffe es hilft dir ...

Ja, verwenden Sie den Rowattr -Rückruf:

rowattr: function (rowData,currentObj,rowId) {
    if (rowData.SomeField=="SomeValue") { 
        return {"class": "ui-state-disabled"};
    }
},

Dies greift auch aus der Reihe aus und deaktiviert die Auswahl.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top