private static void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { CarregaDadosDatabound dadosDatabound = DadosDatabound; if (dadosDatabound != null) { if (e.Item.ItemType == ListItemType.Header || e.Item.ItemType == ListItemType.Footer) { IBarraPaginacao barraPaginacao = FindControlByTypeIBarraPaginacao(e.Item.Controls); if (barraPaginacao != null) { barraPaginacao.PaginaAtual = dadosDatabound.PaginaAtual; barraPaginacao.QtdPaginas = dadosDatabound.TotalPaginas; barraPaginacao.QtdRegistroPagina = dadosDatabound.QtdRegistrosPagina; barraPaginacao.DDLQtdRegistrosPagina.DataSource = dadosDatabound.OpcoesRegistroPagina; barraPaginacao.DDLQtdRegistrosPagina.DataBind(); barraPaginacao.DDLQtdRegistrosPagina.SelectedValue = dadosDatabound.QtdRegistrosPagina.ToString(); if (dadosDatabound.TotalPaginas > 0) { barraPaginacao.RPTPaginas.DataSource = new int[dadosDatabound.TotalPaginas]; barraPaginacao.RPTPaginas.DataBind(); } else { barraPaginacao.RPTPaginas.Visible = false; } if (dadosDatabound.PopularDropDownListOrdernacao != null) { barraPaginacao.DDLOrdenacaoVisible = dadosDatabound.PopularDropDownListOrdernacao(barraPaginacao.DDLOrdenacao); if (!string.IsNullOrWhiteSpace(System.Web.HttpContext.Current.Request.QueryString["order"])) { barraPaginacao.DDLOrdenacao.SelectedValue = System.Web.HttpContext.Current.Request.QueryString["order"]; } } else { barraPaginacao.DDLOrdenacaoVisible = false; } } } if (dadosDatabound.OnItemDataBound != null) { dadosDatabound.OnItemDataBound(sender, e); } } }
private static IBarraPaginacao FindControlByTypeIBarraPaginacao(ControlCollection controles) { if (controles != null) { foreach (Control controle in controles) { if (controle is IBarraPaginacao || controles.GetType().IsSubclassOf(typeof(IBarraPaginacao))) { return((IBarraPaginacao)controle); } else { IBarraPaginacao filho = FindControlByTypeIBarraPaginacao(controle.Controls); if (filho != null) { return(filho); } } } } return(null); }