3

我认为我的问题很简单,但我仍然没有找到任何适合我的答案,无论是这里还是那里..所以如果有人可以帮助我,我会很高兴,如果它是通过提供也没关系有用的链接或其他...

我想要实现的目标:我有一个 Ignite UI Grid (igGrid),我想使用 javascript 删除一行。哪个都没有关系。很简单,对吧?

到目前为止我已经尝试过:

  • $(行).remove(); -> 在这种情况下,每一行都被删除
  • $(行).remove(1); -> JavaScript 运行时错误:对象不支持属性或方法“替换”
  • get_rows(): javascript 不支持,但它可以在 c# 中工作..
  • removeat-method: 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调用,对吧..?对吗??^^

4

3 回答 3

2

以编程方式删除行的 Infragistics 指南

$('#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();
于 2016-04-08T13:17:35.800 回答
1

deleteRow正如其他答案所暗示的那样,是您正在寻找的方法。对于此方法,您可以提供行元素作为参数或行 ID。这是 API 文档

这是代码:

var row = $("#" + $varTablName).igGrid("rowAt", index);
$("#" + $varTablName).igGridUpdating("deleteRow", row);
于 2016-04-14T09:03:19.410 回答
0

你可以试试这个或一些 jquery 等价物。我不知道它会如何影响超网格,所以请仔细检查您是否保留所有其他功能。

var row = document.querySelector('myRowReference');
row.parentNode.removeChild(row);
于 2016-04-08T13:05:54.390 回答