На моей веб-странице у меня есть серия таблиц, которые в основном содержат только строки информации. Каждому из них присваивается идентификатор в цикле for, и я пытаюсь ссылаться на него извне. Я добавил классы в таблицу и кнопку «Сохранить изменения».Использование jQuery для отправки обратно контроллеру
По существу, моя цель состоит в том, чтобы пользователь мог перетаскивать строки вокруг, тем самым изменяя порядок. Затем они могут нажать кнопку «Сохранить изменения», и она вернет сервер обратно соответствующую информацию.
У меня возникли проблемы с настройкой кнопки на соответствующую таблицу и тем самым отправкой идентификатора каждой строки обратно на сервер в массиве. Я написал код, чтобы иметь возможность получать идентификаторы из каждой из таблиц и их текущий порядок, но я не знаю, как назначить это массиву из кнопки click jQuery.
Вот Вид:
@foreach (var collection in Model.Collections)
{
<h2>@collection.Season</h2>
@Html.ActionLink("Delete Collection", "DeleteCollection", new { controller = "Edit", brand = collection.Brand.Name, season = collection.Season })
@Html.ActionLink("Edit Collection", "EditCollection", new { controller = "Edit", brand = collection.Brand.Name, season = collection.Season })
@Html.ActionLink("Add Image", "CreateImages", new { controller = "Edit", season = collection.Season })
<p>
To change the ordering of images, drag and drop to your desired position and then click the Save Changes button on the appropriate collection.
</p>
<table class="table-collection" id="[email protected]">
<tr class="nodrop nodrag">
<th>
Id
</th>
<th>
Description
</th>
<th>
Image
</th>
<th>
Options
</th>
</tr>
@foreach (var image in collection.Images)
{
<tr id="@[email protected]">
<td class="dragHandle showDragHandle">
@image.Id
</td>
<td>
@image.Description
</td>
<td>
<img src="@Url.Content("~/" + image.Location)" alt="@image.Description" />
</td>
<td>
<ul>
<li>
@Html.ActionLink("Edit", "EditImage", new { controller = "Edit", brand = image.Collection.Brand.Name,
season = image.Collection.Season, imageId = @image.Id })
</li>
<li>
@Html.ActionLink("Delete", "DeleteImage", new
{
controller = "Edit",
brand = image.Collection.Brand.Name,
season = image.Collection.Season,
imageId = @image.Id
})
</li>
</ul>
</td>
</tr>
}
</table>
<p>
<input type="submit" value="Save Changes" class="save-order" id="[email protected]"/>
</p>
}
Вот JQuery до сих пор:
$(document).ready(function() {
$(".table-collection").tableDnD();
$(".save-order").click(function (e) {
e.preventDefault();
$.ajax({ url: window.location.href,
type: 'POST',
data: { ids: $("--ASSIGN ARRAY HERE--"
});
JQuery для перебора каждой строки, по существу, это:
function(table, row) {
var rows = table.tBodies[0].rows;
var debugStr = "Row dropped was "+row.id+". New order: ";
for (var i=0; i<rows.length; i++) {
debugStr += rows[i].id+" ";
}
вы хотите разместить в json формате в ваших данных ..? – viyancs
@viyancs Предпочтительно :) – ediblecode