2011-09-08 16 views
0

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

なぜですか?

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

次のように私は、グリッドが定義されています:定義されたその列に

@{ 
    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レコードしかありません)。 Accountsにすべての305のレコードが保持されている場合、グリッドはページングとすべてで動作します。

アカウントが唯一の3ページに対応する30回の記録を保持している場合、例えば、ページング制御はTotalRowsの== 305

はそれを把握できない場合でも、表示されません。あなたはできる?または、私が見ているかもしれないブログ投稿、スレッド、または記事を知っていますか?

答えて

0

大変申し訳ございません。私自身の質問に答えました:

autoSortPage:falseパラメータがgrid.Bind(...)メソッドから抜けています。

WebGrid paging

は、以下のSOスレッドを参照してください。

関連する問題