У меня есть HTML-таблица внутри формы в виде asp.net MVC. Я также использую jQuery плагин TableSorter.
Вот код таблицы (упрощенно для примера)
<table id=managersTable>
<thead>
<tr>
<th>Manager</th><th>Remove</th>
</tr>
</thead>
<tbody>
<tr>
<td>Manager 1<input type='hidden' name='updater.managers[0].Id' value=2313 /></td>
<tr>
<td>Manager 2<input type='hidden' name='updater.managers[1].Id' value=3233/></td>
<td><input type='button' class=removeButtonManager value='Remove' name='remove' /></td>
</tr>
</tbody>
так что, как видите, есть столбец с текстом и второй столбец с кнопкой. Я подключил его, поэтому, когда вы нажимаете на кнопку, он удаляет строку из таблицы HTML, используя этот код:
$(document).ready(function() {
$(".removeButtonManager").live("click", function(event) {
var row = $(this).closest("tr").get(0);
$(this).closest("tr").remove();
$("#managersTable").trigger("update");
$("#managersTable").trigger("appendCache");
});
});
Все отлично работает, кроме одного вопроса. Когда я нажимаю на кнопку «удалить», она удаляет строку, но проблема в том, что индекс для
name='updater.managers[0].Id'
выключен, и, похоже, в последней версии привязки mvc asp.net, если у вас нет индексированного свойства ваших элементов (0,1,2 и т. Д.), Оно не связывается.
, поэтому, если я никогда не удаляю строку, она отлично работает как ее 0,1,2 первоначально, но если я удаляю первую строку, то у меня есть только список (1,2..) И asp.net mvc не будут связывать этот объект.
поэтому я пытаюсь выяснить, как я могу сбросить индекс [] в каждом из элементов после удаления строки, поэтому независимо от удаления какой-либо строки, он всегда дает мне непрерывный список, начиная с 0.