Я пытаюсь добавить строку в MVC3 WebGrid с разбивкой на страницы, используя JQuery.
Когда я добавляю новую строку, она корректно вставляется как последняя строка, но проблема возникает, когда в моей веб-сетке больше 1 страницы.
Новая строка, которая должна быть вставлена в последнюю строку на последней странице WebGrid, вставляется на первую страницу WebGrid.
Javascript код:
$("#add-category-dialog").dialog({
resizable: false,
height: 300,
modal: true,
autoOpen: false,
open: function (event, ui) {
var objectid = 0;
$('#add-category-dialog').load("/Categories/CreateEditPartial", { id: objectid });
},
buttons: {
"Save": function () {
var ai = {
categoryID: $(this).data('id'),
Name: $("#Name").val()
};
var json = $.toJSON(ai);
$.ajax({
url: $(this).data('url'),
type: 'POST',
dataType: 'json',
data: json,
contentType: 'application/json; charset=utf-8',
success: function (data) {
$('.pretty-table tr:last').after('<tr><td>....</td></tr>');
},
error: function (data) {
var data = data;
alert("Error");
}
});
$(this).dialog("close");
},
Cancel: function () {
$(this).dialog("close");
}
}
});
$("#add-category-btn").live("click", function () {
var url = $(this).attr('controller');
$("#add-category-dialog")
.data('url', url)
.dialog('open');
event.stopPropagation();
return true;
});
Контроллер:
[HttpPost]
public ActionResult Create(Category Category)
{
if (ModelState.IsValid)
{
context.Categories.Add(Category);
context.SaveChanges();
}
return Json(new { Success = Category.CategoryID > 0, Category });
}
Вид:
var grid = new WebGrid(Model, ajaxUpdateContainerId: "category-grid", canPage: true, rowsPerPage: 30);
@grid.GetHtml(
tableStyle: "pretty-table",
headerStyle: "ui-widget-header",
columns: grid.Columns(
grid.Column("CategoryID", "Id", canSort: true, format: @<b>@item.CategoryID</b>),
grid.Column("Name", "Name", canSort: true, format: @<b>@item.Name</b>)
)
)