我正在使用Ajax来填充部分内容。
单击主页面上的链接时,部分正确填充。如果我点击另一个链接(它们的列表),它会重新填充。
在我的部分内部,我有一个属性表。只要我点击页面按钮或标题(按顺序),表就会消失。该列表不再重新填充。
有谁知道为什么?
Properties.cshtml
偏。
@model IEnumerable<ns.Models.Property>
@{
WebGrid table = new WebGrid(ajaxUpdateContainerId: "properties-partial");
table.Bind(Model);
}
@table.GetHtml()
我的main.cshtml
页。
<div id="properties-partial">
</div>
@Ajax.ActionLink(
item.Title,
"Properties",
"Home",
new { propertyId = item.propertyId},
new AjaxOptions { UpdateTargetId = "properties-partial" })
我已经检查了在firefox中进行的调用,并直接输入了url,看起来很好(显示正确的数据页面)。它就像它在分页后无法附加到部分,并从那时起打破它。
答案 0 :(得分:2)
解决方案是将表包装在部分内部的div中。并将其指定为ajaxUpdateContainerID
。
@model IEnumerable<ns.Models.Property>
@{
WebGrid table = new WebGrid(Model, ajaxUpdateContainerId: "tablediv");
}
<div id="tablediv">
@table.GetHtml()
</div>
答案 1 :(得分:1)
即使我对部分问题也有同样的问题,并且可以通过执行以下操作来克服:
@model IEnumerable<ns.Models.Property>
@{
if (Model != null && Model.Count > 0)
{
var testWebGrid = new WebGrid(Model, canPage: true, rowsPerPage: 10, ajaxUpdateContainerId: "testTableDiv");
<div id="testTableDiv">
<div id="testGridDiv">
@testWebGrid.GetHtml(mode: WebGridPagerModes.All, footerStyle: "pager")
</div>
@testWebGrid.Pager()
</div>
}
}
jQuery(使用其类删除实际的分页栏):
$(document).ready(function () {
$(".pager").remove();
});
希望这有助于!!