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 に答える