infrastics igGrid:如何使用javascript删除一行

infragistics igGrid: how to remove a row with javascript

本文关键字:一行 删除 javascript igGrid 何使用 infrastics      更新时间:2024-03-21

我觉得我的问题很简单,但我仍然没有找到任何适合我的答案,无论是在这里还是在那里。。所以如果有人能帮我,我会非常高兴,不管是通过提供有用的链接还是其他什么。。。

我正在努力实现的目标:我有一个IgniteUIGrid(igGrid),我想在其中使用javascript删除一行。哪一个都无关紧要。很简单,对吧?

到目前为止我尝试过的:

  • $(row).remove()->在这种情况下,每一行都将被删除
  • $(行).remove(1)->JavaScript运行时错误:对象不支持属性或方法"replace"
  • get_rows():javascript不支持它,但它可以在c#中工作
  • removeat方法:不受javascript支持,但它可以在c#中工作
  • igGridSelection:我想保留的选定内容也将被删除

现在是代码片段:

    $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
        }

这是可行的,对吧?没有必要一直用c#编写并用js调用它,对吧。。?对吗?^^

以编程方式删除行的基础设施指南

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

根据api文档thnx@KonstantinDinev,上面的代码将从网格中删除一行,创建一个事务并更新UI。此功能取决于igGrid 的autoCommit选项

API应始终是第一个选项^^

我们也可以针对dom元素,自己删除或隐藏它。删除后,显示的行数会发生变化,但数据源需要更新

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');
});

未经测试的更新数据方法

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

deleteRow是您正在寻找的方法,正如另一个答案所建议的那样。对于这种方法,您可以提供行元素作为参数,或行ID。下面是API文档。

这是代码:

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

您可以尝试这个或一些等效的jquery。不过,我不知道它会对超级网格产生什么影响,所以请仔细检查是否保留了所有其他功能。

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