コード例 #1
0
        public static void RepeaterBind <T>(System.Web.UI.WebControls.Repeater repeater, IList <T> dataSource, int paginaAtual, int qtdRegistrosPagina, int totalRegistros, int[] opcoesRegistroPagina, PopularDropDownListOrdernacao popularDropDownListOrdernacao, RepeaterItemEventHandler onItemDataBound)
        {
            int nroPaginas = (int)Math.Ceiling((decimal)totalRegistros / qtdRegistrosPagina);

            if (nroPaginas <= paginaAtual)
            {
                paginaAtual = nroPaginas - 1;
            }
            if (paginaAtual < 0)
            {
                paginaAtual = 0;
            }

            if (opcoesRegistroPagina == null)
            {
                opcoesRegistroPagina = new int[] { 20, 40, 60, 80, 100, 160, 200 }
            }
            ;

            DadosDatabound = new CarregaDadosDatabound()
            {
                PaginaAtual = paginaAtual, TotalPaginas = nroPaginas, QtdRegistrosPagina = qtdRegistrosPagina, TotalRegistros = totalRegistros, OpcoesRegistroPagina = opcoesRegistroPagina, PopularDropDownListOrdernacao = popularDropDownListOrdernacao, OnItemDataBound = onItemDataBound
            };

            repeater.ItemDataBound += new RepeaterItemEventHandler(repeater_ItemDataBound);
            repeater.DataSource     = dataSource;
            repeater.DataBind();

            DadosDatabound = null;
        }
コード例 #2
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);
                }
            }
        }