与MVC 4中的部分内容的Ajax分页正在消失

时间:2013-01-10 15:07:06

标签: c# asp.net ajax jquery pagination

我正在使用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,看起来很好(显示正确的数据页面)。它就像它在分页后无法附加到部分,并从那时起打破它。

2 个答案:

答案 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();
});

希望这有助于!!