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