2016-04-08 6 views
3

ich denke, meine Frage ist ziemlich einfach, aber ich fand immer noch keine Antwort, die mir passt, weder hier noch draußen .. so würde ich wirklich glücklich sein, wenn jemand könnte mir helfen, es ist egal, ob es durch die Bereitstellung von nützlichen Links oder was auch immer ...infragistics igGrid: wie man eine Reihe mit Javascript

was ich zu erreichen versuche: Ich habe ein Ignite UI Grid (igGrid), wo ich würde mag eine Zeile mit Javascript entfernen. es spielt nicht einmal eine Rolle. Einfach, oder?

, was ich versucht habe, so weit:

  • $ (row) .remove(); -> in diesem Fall wird jede einzelne Zeile entfernt
  • $ (Zeile) .remove (1); -> JavaScript-Laufzeitfehler: Objekt unterstützt keine Eigenschaft oder Methode 'ersetzen'
  • get_rows(): nicht von Javascript unterstützt, wäre es allerdings in C# arbeiten ..
  • RemoveAt-Methode: nicht obwohl von Javascript unterstützt, wäre es in C# arbeiten ..
  • igGridSelection: ausgewählt Sachen, die ich will, wird halten entfernt werden, zu

und nun der Code-snippet:

$sender = $(this).attr('id'); 
    $varTablName = gridMap.getVarTable($sender); 
    var rowCount = $("#" + $varTablName).igGrid("widget").igGrid('rows').length; 

    $("#" + $varTablName).igGrid("widget").igGrid('rows').each(function (index) { 
     var row = $("#" + $varTablName).igGrid("widget").igGrid("rowAt", index); 
     if (rowCount > 1) { 
      $(row).remove(); //the not quite working part 
     } 

es ist machbar, oder? es ist nicht nötig, den ganzen Weg zu gehen und schreibe es in C# und nenne es mit js, richtig ..? RECHTS? ^^

+0

Dank an alle ..! Ich habe noch keine Lösung und ich glaube nicht, dass ich es heute finden werde. aber ich fange wieder am Montag mit frischem Geist und meinen Kollegen an, die heute nicht im Büro sind. sobald ich mehr weiß, werde ich es dir sagen, damit es einem anderen Tag helfen kann .. . Prost! –

+0

dank bfmags habe ich folgende Lösung gefunden: $ ("#" + $ varTablName) .igGrid ("widget"). IgGrid ('rows'). Je (funktion (index) { if (index> = 1) { $ (this) .css ("display", "none"); } }); –

Antwort

2

Infragistics guide to deleting a row programmatically

$('#grid').igGridUpdating('deleteRow', "AFG"); 
$('#grid').igGridUpdating('deleteRow', 1, $('#grid').igGrid("rowAt", 0)); 

die api docs verfolgt - thnx @KonstantinDinev - der obige Code eine Zeile aus dem Netz löschen, um eine Transaktion zu schaffen und die UI aktualisiert. Diese Funktionalität ist abhängig von autoCommit Option von igGrid

die API immer erste Wahl sein sollte ^^

Wir auch das DOM-Element ausrichten können und entfernen oder es selbst verstecken. Wenn entfernt, um die Anzahl der Zeilen Änderungen angezeigt, aber die Datenquelle müssen aktualisiert werden

http://jsfiddle.net/gtw916um/6/

$(function() { 
    $("#grid").igGrid({}); 

    //hides 2nd row (index starts at 0) 
    $("#grid").igGrid("allRows").each(function(index) { 
    if (index == 1) { 
     $(this).css("display", 'none'); 
    } 
    }); 

    //deletes 4th row (index starts at 0) 
    var row = $("#grid").igGrid("widget").igGrid("rowAt", 3); 
    $(row).remove(); 

    //un-hiding 2nd row (index starts at 0) 
    row = $("#grid").igGrid("widget").igGrid("rowAt", 1); 
    $(row).css("display", 'table-row'); 

}); 

ungetestet Aktualisierungsdaten Methode

$("#grid").data("igGrid").dataSource.deleteRow(3, true); 
$("#grid").data("igGrid").commit(); 
+0

vielen Dank, aber das funktioniert leider nicht mit dem Entfernen von Zeilen. (deleteRow löscht nur die Daten in der Zeile, aber die Zeile selbst bleibt dort.) –

+0

können Sie die Zeilen-ID erhalten? var id = row.attr ("Daten-ID"); $ (id) .remove(); – bfmags

+0

Nein, nicht wie beschrieben (Objekt unterstützt keine Eigenschaft oder Methode 'attr'). aber ich versuchte var RemoveRowId = $ ($ ("#" + $ sender) .igGrid ("widget"). IgGrid ("rowAt", args.row.index)). Attr ("daten-id"); dies wirft keine Ausnahmen, aber entfernt auch nichts ... Ich beginne zu denken, das Problem, das ich habe, heißt ME ... ^^ ' –

0

Sie könnten dies oder etwas Jquery Äquivalent versuchen. Ich weiß nicht, wie es sich auf das Ultragrid auswirken wird, also überprüfen Sie, ob Sie alle anderen Funktionen beibehalten.

var row = document.querySelector('myRowReference'); 
row.parentNode.removeChild(row); 
+0

hmm .. das sieht gut aus für mich, aber ich kann es nicht funktionieren .. nur um sicher zu sein, wenn ich dich richtig verstanden habe .. das ist was ich versucht habe: var tmpRow = document.querySelector ('id', 1); row.parentNode.removeChild (Zeile); edit: gut, es hat in einem gewissen Sinne funktioniert ... es hat keine Ausnahmen geworfen, aber es endete immer noch alles löschen ... –

1

deleteRow ist die Methode, die Sie suchen für wie die other answer suggests. Für diese Methode können Sie das Zeilenelement als Parameter oder die Zeilen-ID angeben. Here's the API docs.

Hier ist der Code:

var row = $("#" + $varTablName).igGrid("rowAt", index); 
$("#" + $varTablName).igGridUpdating("deleteRow", row); 
Verwandte Themen