3
asp.net mvc 3 응용 프로그램을 개발 중이며 webgrid를 사용하여 내보기에 표 형식의 데이터를 표시하고 있습니다. 내 질문은 데이터베이스에있는 레코드 수를 세어 일부 데이터를 페이징하고 웹 그리드의 호출기를 그리드 바닥 글에 표시하는 방법은 무엇입니까? 예를 들어, 내 저장소에 내가 가진 :모델 및 개수로 webgrid를 호출합니다.
public PagedList<Acesso> ObterAcessos(long idPessoa, int pageIndex, int pageSize)
{
return new PagedList<Acesso>
{
PageIndex = pageIndex,
PageSize = pageSize,
Total = Session.QueryOver<Acesso>().Where(acesso => acesso.Pessoa.Id == idPessoa).FutureRowCount(),
List = Session.QueryOver<Acesso>()
.Where(acesso => acesso.Pessoa.Id == idPessoa)
.OrderBy(acesso => acesso.DataInicio).Desc
.Take(pageSize).Skip((pageIndex - 1)*pageSize)
.Future<Acesso>()
};
}
내 컨트롤러 :
public ActionResult Acessos(int page = 1)
{
// 30 records per page
return View(_rep.ObterAcessos(SecurityHelper.User.Id, page, 30));
}
내보기 :
@model PagedList<Acesso>
@{
ViewBag.Title = "Acessos";
var grid = new WebGrid(rowsPerPage: Model.PageSize, canSort: false, ajaxUpdateContainerId: "grid");
// set the rowCount by Total property and the List property
grid.Bind(rowCount: Model.Total, source: Model.List);
}
<h2>Acessos</h2>
@grid.GetHtml(htmlAttributes: new { id="grid", style="width:700px;" },
mode: WebGridPagerModes.All,
tableStyle: "grid", rowStyle: "gridrow", alternatingRowStyle: "gridrow_alternate",
columns: grid.Columns(
grid.Column("DataInicio", "Data de Inicio", item => item.DataInicio.ToString("dd/MM/yyyy HH:mm")),
grid.Column("IP", "IP"))
)
데이터를 잘 제공, 계산하고 목록이 오른쪽하지만 이 코드를 실행하면 페이지 데이터가 표시되지 않고 첫 번째 페이지 만 표시되고 webgrid의 호출기가 내보기에 표시되지 않습니다. 내가 설정할 수있는 물건이 있습니까? 당신의 grid.Bind에
autoSortAndPage: false
() 그래서 읽습니다 :
당신이 모델의 페이징을하고 있기 때문에
크리스, 감사합니다. 지금은 저에게 잘 작동합니다. –
끝내 주셔서 감사합니다. :) – Chris