1

WebGridのページングに問題があります。基本的に、私は完全なデータを渡します、それはOKをページングします。データを一度に1ページに制限すると、rowCountを渡したにもかかわらず、ページングコントロールが表示されなくなります。

なんで?

セットアップについては、以下を参照してください。

次のように定義されたグリッドがあります。

@{
    ViewBag.Title = "Cuentas";
    var grid = new WebGrid(defaultSort: "AccountName", rowsPerPage: 30, canPage: true, 
        ajaxUpdateCallback: "updateGrid");
    grid.Bind(source: Model.Accounts, rowCount: Model.TotalRows);
}

その列は次のように定義されています。

<div id="grid">
    @grid.GetHtml(tableStyle:"grid",headerStyle:"head", alternatingRowStyle:"alt", htmlAttributes: new { id = "AccountsGrid"},
        columns:  grid.Columns(grid.Column(header: "", format: (item) => Html.ActionLink("Editar", "Edit", new { id = item.AccountId })),
                                grid.Column(header: "", format: (item) => Html.ActionLink("Eliminar", "Delete", new { id = item.AccountId })),
                                grid.Column("AccountName",header:"Nombre"), 
                                grid.Column("IsClient", header:"Cliente?"), 
                                grid.Column("IsProvider", header:"Proveedor?"), 
                                grid.Column("IsBank", header:"Banco o Caja?"),
                                        grid.Column("Person", format: item => new HtmlString(item.Person == null ? "" : item.Person.Name), header: "Contacto"),
                                        grid.Column("AccountsCostCentress", 
                                            format: item => new HtmlString(item.AccountsCostCentress == null ?
                                            "" : item.AccountsCostCentress.Count.ToString()), header: "Actividades")))
</div>

ビューで使用しているViewModelは、次のように定義されています。

public class AccountsListViewModel
{
    public int PageSize { get; set; }
    public int PageNumber { get; set; }
    public IEnumerable<Account> Accounts { get; set; }
    public int TotalRows {get;set;}
}

これは、rowCountとIEnumerableアカウントを渡すことができることを示しています。

305行のアカウントがあるとしましょう。PageSizeを30に設定すると、11ページのデータが作成されます(最後のページには5つのレコードしかありません)。アカウントが305レコードすべてを保持している場合、グリッドはページングとすべてで機能します。

アカウントが3ページに対応する30レコードのみを保持している場合、たとえば、ページングコントロールは表示されません(TotalRows == 305の場合でも)。

それを理解することはできません。あなたはできる?または、私が見る可能性のあるブログ投稿、スレッド、または記事を知っていますか?

4

1 に答える 1

0

ごめん!私自身の質問に答えました:

autoSortPage:grid.Bind(...)メソッドにfalseパラメーターがありません。

次のSOスレッドを参照してください。

WebGridページング

于 2011-09-08T20:43:07.943 に答える