0

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

4

2 回答 2

2

解决方案是将表格包装在部分内部的自己的 div 中。并将其指定为ajaxUpdateContainerID.

@model IEnumerable<ns.Models.Property>

@{
    WebGrid table = new WebGrid(Model, ajaxUpdateContainerId: "tablediv");

}
<div id="tablediv">
    @table.GetHtml()
</div>
于 2013-01-10T16:13:16.103 回答
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();
});

希望这可以帮助!!

于 2013-01-10T15:47:41.003 回答