igGrid: как убрать строку с помощью javascript

Я думаю, что мой вопрос довольно прост, но я все еще не нашел ни одного ответа, который бы подходил мне, ни здесь, ни там... так что я был бы очень рад, если бы кто-то мог мне помочь, не имеет значения, если он предоставит полезные ссылки или что-то еще...

что я пытаюсь достичь: у меня есть Ignite UI Grid (igGrid), где я хотел бы удалить строку, используя javascript. не имеет значения, какой именно. просто, правда?

что я пробовал до сих пор:

  • $(строка).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, верно..? RIGHT??^^

3 ответа

Решение

Руководство по удалению строки с помощью Infragistics

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

Следуя инструкциям API - thnx @KonstantinDinev - приведенный выше код удалит строку из сетки, создаст транзакцию и обновит пользовательский интерфейс. Эта функциональность зависит от опции autoCommit igGrid

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 это метод, который вы ищете, как предлагает другой ответ. Для этого метода вы можете указать элемент строки в качестве параметра или идентификатор строки. Вот документы по API.

Вот код:

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

Вы можете попробовать это или какой-нибудь эквивалент jquery. Я не знаю, как это повлияет на ультрасеть, так что перепроверьте, сохраните ли вы все остальные функции.

var row = document.querySelector('myRowReference');
row.parentNode.removeChild(row);
Другие вопросы по тегам