ASP .NET - Sistema para Imobiliária com Ajax - VI


Continuando a criação do site da imobiliária(ainda sem Ajax) irei mostrar como criar a área de administração da imobiliária onde será feita a manutenção dos dados relativos ao negócio da imobiliária. Nesta área iremos gerenciar as informações dos : Estados, municípios, bairros, negocio , categoria , clientes , corretores e imóveis.

Obs: Você pode ver o site funcionando em : http://www.macoratti.net/imob/ (somente a opção padrão esta funcionando...por enquanto...)

A área de administração deve ser de acesso restrito e somente usuários autorizados deverão ter acesso as opções disponíveis nesta área.

Obs: Lembrando que estamos seguindo o 'caminho feliz' usando os recursos básicos da ASP .NET para por o site para funcionar o mais rápido possível.

Criando a área de administração

Vou começar criando uma pasta chamada Admin a partir da raiz do nosso web site onde irei colocar todas as páginas referente a administração do site.

Clique com o botão direito sobre o nome do site e selecione New Folder e informe o nome Admin.

Em seguida vou criar no interior desta pasta uma Master Page que será a identidade visual da área de administração. (Por razões didáticas vou usar um leiaute o mais simples possível).

Clique com o botão direito sobre a pasta Admin e selecione Add New Item e selecione o template Mater Page informando o nome Admin.master.

Em seguida a partir do menu Table -> Insert Table, selecione uma tabela com duas linhas e duas colunas;

Vamos incluir na master page um controle Image ma primeira célula onde iremos exibir uma imagem definindo a propriedade imageUrl = ~/images/maco10.gif;

Na segunda célula vamos escrever o título referente a área de administração;

Na terceira célula vamos incluir a partir da ToolBox, guia Navigation, o controle TreeView onde iremos exibir o menu da área de administração;

Vamos fazer isso da maneira mais simples selecionando o controle e clicando no link Edit Nodes; Em seguida vamos incluir as opções do Menu definindo na propriedade Text o nome e em NavigateUrl o caminho a página. Para a primeira opção temos: Text = Estados e NavigateUrl = ~/Admin/Estados.aspx

Na quarta célula devemos colocar o  <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"></asp:ContentPlaceHolder> que irá exibir o conteúdo das páginas.

Salvando a master page já estamos pronto para usá-la nas demais páginas. Vou criar a página principal da área incluindo uma nova página Default.aspx que deve herdar da master page.

Clique com o botão direito do mouse sobre o nome do web site e selecione Add New Item, selecionando o template Web Form ,informando o nome Default.aspx  observando se as opções Place Code in separete file e Select master page estão ambas marcadas;

Na próxima janela tenha cuidado de selecionar a master page Admin.master criada na pasta Admin e clique no botão OK.(Note que temos a master page Default.aster na raiz do site).

Dessa forma temos a página Default.aspx apresentando o menu de opções da área de administração do site.

Todas as demais páginas da área de administração serão criadas da mesma forma herdando da master page Admin.master.

E não vou mostrar como criar todas as páginas pois seria muito enfadonho e cansativo. Apresentarei como criar duas página onde daremos a manutenção aos estados e aos municípios para você ter uma idéia. As demais páginas seguem o mesmo princípio dessas duas.

A página de estados deve apresentar as informações contida na tabela Estados. Vamos primeiro criar uma página chamada Estados.aspx na pasta Admin herdando da master page Admin.master seguindo o roteiro já descrito acima.

Em seguida vamos incluir , a partir da ToolBox, guia Data, o controle DetailsView, que usaremos para editar, incluir e excluir informações dos estados.

Após incluir o controle selecione-o e na guia DetailsView Tasks na opção Choose Data Source , selecione <New Data Source...>;

Na janela do assistente de configuração selecione o item Access DataSource aceite o nome padrão para o ID e clique em OK;

A seguir em Choose a DataBase clique no botão Browse e selecione a partir da pasta App_Data o arquivo imobiliaria.mdb e clique em OK;

Na próxima janela Selecione a tabela Estados e marque todas as colunas e clique no botão Advanced e marque - Generate INSERT, UPDATE and DELETE statements de forma sejam gerados os comandos para incluir, alterar e excluir;

Clique em OK e a seguir em Finish;

Selecione o controle DetailsView e na guia DetailsView Tasks clique no link Edit Fields... e na janela Fields altere as propriedades do commandField conforme a figura abaixo;

Desta forma temos a página Estados.aspx com o controle DetailsViews configurado para podermos gerenciar os estados usados na nossa aplicação;

Repetindo o processo vamos criar uma nova página Municipios.aspx na pasta Admin herdando de Admin.master e incluindo na página o controle DetailsView configurando para usar a tabela Municipios;

A diferença nesta página será a exibição do campo Estado. No original o formulário irá exibir o código do estado. Vamos alterar este comportamento para exibir o nome do estado.

Para isso selecione o controle e em DetailsView Tasks clique em Edit Fields.... Selecione o campo Estado e clique no Link Convert this field into a TemplateField;

Agora edite novamente o controle e clique no link Edit Templates;

Em ItemTemplate exclua o controle Label original e inclua um controle DropDownList; Clique em Choose Data Source e repita o procedimento para o banco de dados Imobiliaria.mdb a partir da pasta App_Data e selecione a tabela Estados marcando os campos nomeEstado e codEstado;

Na janela Choose a Data Source selecione o campo nomeEstado para ser exibido e o campo codEstado para ser o valor que irá atualizar a tabela;

A final teremos o  ItemTemplate configurado conforme abaixo;

Repita o procedimento acima para EditItemTemplateInsertItemTemplate de forma que na exibição, edição e inclusão iremos ver o nome do estado sendo exibido no campo referente ao estado;

Para poder exibir no dropdownlist do ItemTemplate, EditItemTemplate e InsertItemTemplate os estados sincronizados devemos fazer o seguinte:

Selecione o dropdownlist dos TemplateFields para o ItemTemplate e faça o seguinte:

- Clique no botão WHERE para montar uma condição de exibição de dados para o controle;

Na janela add WHERE Clause selecione o campo para o qual deseja criar a condição , no nosso caso o campo codEstado;

Em seguida selecione de onde deverá sair o parâmetro para estipular a condição. No nosso caso o parâmetro virá do primeiro controle DetailsView1

Em seguida clique no botão Add e em OK;

Repita o procedimento acima para o EditItemTemplate.

Nota: Devemos definir a propriedade DataKeyNames do controle DetailsView como sendo igual a codEstado para que a sincronização funcione.

Executando o web site e entrando na área de administração para gerenciar os municípios teremos:

Com isso mostrei como você pode criar as páginas de manutenção de dados usando o DetailsView. Se desejar pode usar o componente FormView ou GridView mas o procedimento é basicamente o mesmo para as demais opções onde a única alteração é tabela fonte de dados.

Para implementar a segurança na área de administração de forma que somente usuários com permissão terão acesso a mesma, usando o banco de dados Access,  eu sugiro que você leia o meu artigo: ASP .NET - Usando o modelo de providers (MemberShip, Roles e Profiles) com o Access

Com isso estou encerrando este série de artigos sobre a imobiliária. A próxima etapa será implementar o Ajax, o que farei no tempo oportuno. Já adianto que é muito simples, basta usar os componentes ScriptManager e UpdatePanel do Ajax para implementar algumas funcionalidades com recursos AJAX.

Aguarde mais artigos sobre ASP .NET .

O projeto completo com a área de administração está no Super DVD .NET (faça o seu pedido aqui: Pedido)


José Carlos Macoratti