예제 #1
0
        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);
                }
            }
        }
예제 #2
0
 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);
 }