Repeater no GASweb. Regiões



Documentos relacionados
Validação de formulário : CEP, e CPF

Validando dados de páginas WEB

MANUAL DO ANIMAIL Terti Software

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

App - Paint Pot (Lata de tinta)

Manual do Contribuidor. Portal de Internet. Projeto: Novo Portal de internet

O objetivo da aula é realizar upload de arquivos com aplicação web. Será realizado o upload de duas formas:

Banco de Dados Microsoft Access: Criar tabelas

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

Nome do Processo: Requisição Gera Múltiplos pedidos para Múltiplos Fornecedores

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ASP.NET

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Consulta de endereço através do Cep

Manual das planilhas de Obras

CRIAÇÃO DE RELATÓRIOS EM DELPHI

CSS é a abreviatura para Cascading Style Sheets Folhas de Estilo em Cascata

Aula 06 Usando controles em ASP.NET

Slice Tool - Ferramenta Fatia

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

1) Como acessar a aplicação

Posicionamento e Layout com CSS

Manual Sistema de Autorização Online GW

Guia para Escolha de Fotos no PSG Request

Manual de criação de envios no BTG360

Inserindo Dados no Banco de Dados Paradox.

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

Inventario de produtos

TUTORIAL WEEBLY. 2-Crie um cadastro (lembrando que palavra passe é a senha). Após preencher o formulário, clique em Sign Up. It s Free!

Microsoft Access: Criar relações para um novo banco de dados. Vitor Valerio de Souza Campos

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

O Excel é um programa de computador desenvolvido para gerenciar dados na forma de planilhas.

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Configurando o IIS no Server 2003

Google Drive. Passos. Configurando o Google Drive

Portal Sindical. Manual Operacional Empresas/Escritórios

Manual da Administração do site Abrasel 2.0

MATERIAL DE APRESENTAÇÃO DO SCRATCH

OFICINA BLOG DAS ESCOLAS

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

Aula 09 - Atualização de uma tabela dinâmica. Aula 09 - Atualização de uma tabela dinâmica. Sumário. Atualizando a tabela dinâmica

MANUAL DE CONFIGURAÇÃO

Relatórios com Rave Reports

Criando um projeto ASP.Net no Visual Studio 2008

Web Design Aula 11: Site na Web

Criando um carrinho de compras

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop

ANDROID APPLICATION PROJECT

MANUAL COTAÇAO WEB MANUAL MANUAL AVANÇO INFORMÁTICA AVANÇO INFORMÁTICA. [Digite seu endereço] [Digite seu telefone] [Digite seu endereço de ]

Tutorial do ADD Analisador de Dados Dinâmico.

Gerenciamento de Contatos


Configurando um Grupo Doméstico e Compartilhando arquivos no Windows 7

Microsoft Visual Studio 2010 C# Volume II

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI

Conhecendo o Proteus

Logo abaixo temos a Barra de Menus que é onde podemos acessar todos os recursos do PHP Editor.

Para o PowerPoint, assim como para vários softwares de apresentação, uma apresentação é um conjunto de slides.

Orientações sobre a Utilização do Home Saúde

Guia de utilização versão Sou Empresa SISCONV AREF

Módulo Publicações Publicações On Line. Módulo Publicações

Trecho retirando do Manual do esocial Versão 1.1

MANUAL DE UTILIZAÇÃO DO WEBMAIL SBC

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

Manual do Klipper. Philip Rodrigues Carsten Pfeiffer Tradução: Marcus Gama Tradução: André Marcelo Alvarenga

MANUAL. Laudos Online Convênios & Empresas.

MANUAL DE UTILIZAÇÃO

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Como incluir artigos:

Instalação do Linux Educacional 3.0 Bancadas SED

Iniciando o MySQL Query Brower

LAB12: Componentes ASP.NET

Manual de Utilização

Instalando o Internet Information Services no Windows XP

Ferramenta de Testagem IECL Orientações para o Aluno (PT)

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

Tutorial PicturesFace. Especificações. Acessando o aplicativo pela primeira vez

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Análise de Dados do Financeiro

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

Table of Contents. PowerPoint XP

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

SuperStore. Sistema para Automação de Óticas. MANUAL DO USUÁRIO (Módulo Vendas e Caixa)

PHP Material de aula prof. Toninho (8º Ano)

Microsoft Access Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS -

JAVAWEB AULA 2 Prof. Daniela Pires Sumário

Sistema de Automaçaõ de Vendas Manual Passo a Passo

Transcrição:

Repeater no GASweb Por: Rodrigo Silva O controle de servidor Repeater é um container básico que permite a você criar uma lista de qualquer informação que deseja em uma página Web. Ele não tem uma aparência definida, é você que molda o layout do controle usando outros controles ASP.NET. Quando você executa a página o controle Repeater faz uma interação através dos dados na fonte de dados e renderiza um item para cada dado. Para usar o controle Repeater você cria regiões que definem o layout do conteúdo do controle. Estas regiões podem conter qualquer combinação válida de texto Html e controles na página web. Se você não definir nenhuma região ou as regiões não contiverem elementos, ele não vai ser visível na página. O Repeater, apesar de ser simples, tem uma série de complicações no seu uso, desde o click, que usa algum parâmetro específico da linha clicada, até paginação, fazendo o Select no banco de dados apenas nos registros requisitados pelo controle de paginação. No GASweb, com sua rica interface e controles, você pode criar as regiões do seu Repeater de forma fácil, bem como fazer sua interação com o banco de dados e paginação. Além de separar a parte de cliente (design de controles) e o código de servidor (binding dos campos que serão apresentados nos Repeaters), evitando assim código c# em sua pagina ASPX. Regiões O Repeater no GASweb tem 4 partes que você pode definir seus layouts. Header Ficará na parte de cima da lista, não se repetirá. Body e Alternating Apresentará todos os registros da sua tabela ou view, revezando entre body e alternating. Footer Ficará na parte inferior da lista, não se repetirá. Abaixo um exemplo de como se define o Repeater no GASweb. Nível - Intermediário 1/8

Imagem do projeto gerado: Repeater Pager Quando temos um número muito elevado de registros no banco, pode causar lentidão se tentarmos pegar e mostrar todos os registros de uma só vez. Por isso, existe o Repeter pager, para paginar os registros fazendo que mostre apenas um número limitado de linhas no Repeater. Como fazer um Repeater pager no asp.net? Primeiramente criar os botões da para paginar os registros: <asp:panel id="grepeaterpager1" runat="server" horizontalalign="left" style="position: absolute; left: 114px; top: 24px; width: 230px; height: 30px; background-color: Transparent; border-color: #000000; border-style: None; border-width: 0"> <asp:button id=" GRepeaterPager1 Button1" runat="server" commandname="button1" <asp:button id=" GRepeaterPager1 Button2" runat="server" commandname="button2" <asp:button id=" GRepeaterPager1 Button3" runat="server" commandname="button3" <asp:button id=" GRepeaterPager1 Button4" runat="server" commandname="button4" <asp:button id=" GRepeaterPager1 Button5" runat="server" commandname="button5" 2/8

<asp:button id=" GRepeaterPager1 Button6" runat="server" commandname="button6" <asp:button id=" GRepeaterPager1 Button7" runat="server" commandname="button7" <asp:button id=" GRepeaterPager1 Button8" runat="server" commandname="button8" <asp:button id=" GRepeaterPager1 Button9" runat="server" commandname="button9" </asp:panel> Depois criamos uma propriedade para manter a página clicada: public int GRepeater1_PageNumber get if (ViewState["GRepeater1_PageNumber"]!= null) return (int)viewstate["grepeater1_pagenumber"]; return 0; set ViewState["GRepeater1_PageNumber"] = value; Depois é feito o click dos botões setando a página, de acordo com o botão clicado: public void GRepeaterPager1 Click(object sender, EventArgs e) switch (((Button)sender).CommandArgument.ToUpper()) case "F": GRepeater1_PageNumber = 0; case "P": if (GRepeater1_PageNumber > 0) GRepeater1_PageNumber--; case "N": GRepeater1_PageNumber++; case "L": GRepeater1_PageNumber = -1; default: int Num; if (int.tryparse(((button)sender).commandargument, out Num)) GRepeater1_PageNumber = Num; 3/8

E na hora de fazer o select no banco, chama uma classe estática que controla os registros selecionados: GRepeater1.DataSource = RepeaterPagerControler.ControlPagesButtons(GRepeaterPager1, 5, 10, ref GRepeater1_PageNumber, true, true, PageProvider.GRepeater1RepeaterProvider.SelectAllItems().Tables[0].Rows); E no GASweb como é feito? Arraste o pager para a tela: Diga o numero de registros que deseja mostrar por página e se quer os botões de primeiro e último e próximo e anterior: E por ultimo diga ao Repeater qual o pager será utilizado por ele Pronto! Seu Repeater já estará paginando normalmente. Lembrando que você pode customizar os botões do pager através da property grid do GASweb. Ações de servidor Ao listar os itens de um Repeater, muitas vezes vemos a necessidade de utilizar ações que utilizem campos do registro que foram clicados, coisa que o Repeater por si só não oferece. O que acontece é que ao fazer a requisição de servidor, o datasource do Repeater é zerado, fazendo com que não seja possível utilizar a mesma base, onde temos apenas o id da linha selecionada. 4/8

E por que não refazer o select e utilizar o id da linha para pegar o registro selecionado? Ao fazer isto você não terá a mesma base que teria antes e isso pode acarretar problemas, pois o banco de dados pode ter sido mudado por outros usuários do sistema, fazendo com que aconteça de não haver o registro ou o registro ser diferente do originalmente clicado. E como resolver isto? Primeiramente, quando carregar os registros do banco, iremos armazenar em ViewState o Index da linha, associado com um campo chave do registro no banco, para podermos fazer select nele pelo campo do index, mantendo assim fiel ao registro clicado. A função Databind será chamada para cada linha do Repeater, então neste ponto ligaremos o index da linha com o index do campo do banco: DataRow row = e.item.dataitem as DataRow; if(row!= null) GRepeater1Index[e.Item.ItemIndex] = "Nome=" + row["nome"].tostring(); Onde Nome é o nome do campo que será o index do banco. Com isso teremos uma lista com todas as linhas e filtros para funcionar nela. Para que ela não seja apagada precisamos guardar ela em viewstate: public Hashtable GRepeater1Index get if (ViewState["GRepeater1Index"]!= null) return (Hashtable)ViewState["GRepeater1Index"]; return null; set ViewState["GRepeater1Index"] = value; Após o click, o index vai vir através do eventargs do post como mostrado: Control TargetControl = this.findcontrol(request[" EVENTTARGET"].Replace(':', '$')); if (((RepeaterItem)TargetControl.BindingContainer).ItemIndex >= 0) GRepeater1ProviderSinc(((RepeaterItem)TargetControl.BindingContainer).ItemIndex); 5/8

E a função que sincroniza a tabela do repater com o item clicado: public void GRepeater1ProviderSinc(int LineIndex) Dictionary<string, object> Values = new Dictionary<string, object>(); string[] splittedvals = GRepeater1Index[LineIndex].ToString().Split(' '); foreach(string Val in splittedvals) Values.Add(Val.Substring(0, Val.IndexOf("=")), Val.Substring(Val.IndexOf("=") + 1)); PageProvider.GRepeater1RepeaterProvider.FindRecord(Values); Depois disso, no item da tabela do Repeater, estarão os dados do item clicado: PageProvider.GRepeater1RepeaterProvider.Item Podendo ser usado para click: Response.Redirect("DataPage.aspx?NOME=" + (Convert.ToString(PageProvider.GRepeater1RepeaterProvider.Item["Nome"].GetValue())).ToStrin g()); E no GASweb? No GASweb já está pronto. Você pode apenas criar a sua action em algum evento dos controles colocados dentro do Repeater e utilizar os parâmetros da tabela do Repeater. Utilizando Repeater como grid no GASweb Você pode utilizar o Repeater para simular um GRID e customizar as ações de INSERT,UPDATE e DELETE. Veja abaixo como podemos fazer isso. Como fazer a Exclusão: Basta colocar um botão no corpo do Repeater, colocar uma action customizada no click do botão e colocar o seguinte código C#: ViewState["OldParameters"] = null; PageProvider.GRepeater1RepeaterProvider.DeleteItem(PageProvider.GRepeater1RepeaterProvider. Item); Onde GRepeater1 é o nome do seu Repeater. 6/8

Como fazer a Inclusão: Nas propriedades da p sgina de dados todas essas propriedades devem estar marcadas. Crie um parâmetro de query string onde você passará o campo Index da página. Faça um filtro inicial na pagina de acordo com o seu index. =([AUX_Rep].[Nome] = NOME) O filtro serve para que quando o parâmetro passado seja ou não exista, a página venha em modo de inclusão. Caso seja algum valor de registro existente, ela vem em modo de edição. Coloque na página os campos do banco desejados e coloque um botão de salvar Pronto! Lembrando que desse modo, você pode criar suas tabelas auxiliares a vontade, podendo criar processos e lançamentos da mesma maneira que você faria no grid. Como fazer a Edição: Coloque um botão no corpo do repeater para edição, e no click do botão faça uma navegação para a mesma página passando como parâmetro o Campo que é index da sua tabela. E por último, colocar o evento de navegação para a própria página ao término do save para o não ter mais filtro ativo. 7/8

Como vocês podem ver, criar um Repeater no GASweb é muito mais fácil do que cria-lo no Visual Studio. Pois o GASweb tem uma interface rica de controles e propriedades que auxiliam na criação das regiões do repeater. No próximo artigo vamos mostrar como criar uma aplicação multiempresa no GASweb. 8/8