gpt4 book ai didi

javascript - 在 webgrid 中添加表格行时出现分页问题?

转载 作者:行者123 更新时间:2023-11-28 10:13:00 24 4
gpt4 key购买 nike

我正在尝试使用 JQuery 将一行添加到启用分页的 MVC3 WebGrid。

当我添加新行时,它会作为最后一行正确插入,但当我的 WebGrid 中有超过 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;

});

Controller :

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

最佳答案

通过以下行,您将添加新行作为当前页面的最后一行。

$('.pretty-table tr:last').after('<tr><td>....</td></tr>');

具有分页功能的 WebGrid 仅显示特定页面的行。因此,生成的最终 html(表 >tr)将仅适用于该特定页面。因此,上面的 jQuery 行找到生成的 html 中的最后一行并在其后面插入行。在你的情况下可能是第一页。尝试导航到最后一页(或第一页和最后一页之间的任何页面),然后添加新行,看看是否是这样发生的。

Controller 代码看起来不错,因此您不应该在 ajax 调用成功时执行任何操作。在上面添加注释并测试您的代码。添加新行并导航到最后一页。您的新行应该显示在那里。

关于javascript - 在 webgrid 中添加表格行时出现分页问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7175310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com