ASP.NET – Área Administrativa
Estamos de volta com mais um tutorial sobre ASP.NET. Hoje iremos começar a criar a área de administração do nosso site. Vamos poder criar empresas, localidades, apagar comentários, ver votações, etc.. Fiquem atentos e participem neste brainstorming de programação.
No último tutorial criamos o nosso modelo de dados e definimos os níveis de acesso da aplicação. Com a definição desses níveis é agora possível adicionar funcionalidades que apenas estão disponíveis para os administradores do nosso site.
1.Administração
Vamos começar por adicionar uma nova páginas por cada tabela na nossa entidade dentro da pasta admin, para assim essas páginas ficarem apenas visíveis a utilizadores com perfil Admin. Estas novas páginas têm de referenciar a master page "Site.Master".
No final iremos ficar com estas páginas.
De seguida vamos editar a página Empresas.aspx . Adicionamos um titulo, um parágrafo e um Panel, este último irá conter a GridView. O Panel servirá para possibilitar o scroll quando a grid se expande no modo de edição.
Vamos adicionar uma gridView e coloca-la dentro do panel:
De seguida entramos no mode de design e adicionamos uma EntityDataSource à GridView com o nome "EntityDataSourceEmpresas", configuramos a ligação e escolhemos como entidade a Tabela Empresas. Marcar todas as checkboxes.
De seguida seleccionamos todo o texto "Criar empresa" e carregamos no icone "Convert to Hyperlink" e escolhemos a página de destino "Create_Empresa.aspx", ou então no código adicionamos uma tag "<a>" com href para a página.
Vamos abrir a página Create_Empresa.aspx. Nesta página vamos adicionar um titulo, um link que permite voltar à lista de empresas e uma form que vai permitir adicionar os novos valores para uma empresa. Para esta form é adicionada uma nova EntityDataSource, tal e qual como foi configurada anteriormente. Vamos colocar a opção por defeito da form como insert.
De seguida vamos editar o template de insert da nossa form e vamos adicionar uma dropDownList que irá conter as localidades existentes na base de dados. Criamos uma nova entityDatasource que irá apontar para a tabela localidades. Definimos o Display com a propriedade "Nome" e o value com a propriedade "Id".
Depois editamos os databindings da dropDownlist e colocamos como binding do SelectedValue a propriedade que faz Bind com a tabela Empresas, neste caso a LocalidadeId. Adicionamos um campo oculto que vai conter a Data de criação do registo.
Para inserirmos a data de criação de registo podemos fazê-lo na base de dados com um campo default ou um trigger. Neste caso vamos fazê-lo no evento ItemInserting do form, onde colocamos o valor da data actual no campo DataCriacao.
Para podermos ver estas alterações em funcionamento, vamos criar os novos items no nosso menu de navegação. Vamos abrir a master page, "Site.Master"
Como podemos ver estas novas páginas foram colocadas num sub-menu do menu Admin. Vamos correr a nossa aplicação e testar as novas funcionalidades. Depois de fazer o login, podemos verificar os novos itens no menu.
Escolhemos a opção Empresas e vemos a nossa lista de empresas ( estão no projecto os inserts necessáros para criar as empresas e localidades). Neste ecrã podemos editar, criar e apagar empresas. Ao escolhermos a opção criar empresa, somos redireccionados para a página de criação. Onde podemos preencher os campos necessários e conseguimos ver uma lista de Localidades.
2. Conclusão
Por hoje damos o tutorial por terminado. No próximo tutorial vamos terminar as nossas páginas e começar a tratar do layout. Em baixo podem fazer download do projecto (Visual Studio 2010). Caso tenham alguma questão já sabem, deixem um comentário em baixo.
Download: GoodToWork [ 331Kb ]
mt bom para quem se quer iniciar, Obrigado
Parece que adivinham o que eu preciso… Obrigado… Preciso mesmo deste tutorial para esta semana 😀
Obrigado
Henrique muito bom o tutorial.
Sou um estudante e aprendiz da tecnologia e estou aprendendo muito com os seus tutoriais.
Futuramente gostaria que você ensinasse sobre USER CONTROLS.
Abraços!!!
Bom Noite. Desde já obrigado por este tutoriais que tens aqui apresentado.Quanto a este tutorial tenho uma duvida. Como é que configuraste o entity data source na grid view, é que já estou adei aqui às voltas e não consigo configurar isso.
Abraços!
Viva.
Para adicionar a datasource começa a ver o tutorial a partir da 6ª imagem.
Escolhes a opção choose datasource da GridView e a partir dai é fazer next.
Cumprimentos.
Boa tarde Henrique,
Chamo-me Bruno e estou a desenvolver uma aplicação muito simples em ASP.NET / VB.NET em que basicamente tenho uma página de login e na 2ª página tenho uma tabela com os meus certificados e diplomas de cursos que fiz.
Estou a fazer esta aplicação com o objectivo de dar o link nas ofertas de emprego a que me candidato.
O meu problema é que na Master Page tenho uma div com uma imagem e a mesma não aparece nas páginas “.aspx”.
Quando trabalho no Visual Studio tudo parece funcionar bem, mas quando coloco a aplicação no localhost a imagem que coloquei na master page não aparece. Já verifiquei as permissões e tudo me parece bem. Inclusivamente, já fui ao ficheiro Web.config e fiz:
Continua a não funcionar. O Henrique poderia-me ajudar, s.f.f.? Esta aplicação é muito importante para mim!
Obrigado.
Melhores cumprimentos,
Bruno
Antes de mais, parabéns pelo excelente trabalho.
Estou a seguir o tutorial, mas não consegui adicionar o datasource à gridview.
No ecran “Configure ObjectContext” tenho de escolher a ConnectionString mas não me aparece nenhum valor no campo “Named Connection”. Pelo que percebi o EntityModel deveria ter criado uma connectionString no webconfig. Como resolver?
Não consegui fazer o download do código fonte.
Obrigado
Estou com o mesmo problema que o Nuno,
quando adiciono a GridView e vou configurar a dataSource dela aparece-me um ecrã para escolher a ConnectionString:
->Named Connection;
-> Connection String;
Quando clico na Named Connection não me aparece o “GoodToWorkEntityContainer”.
Ola Nuno, João.
Num tutorial anterior eu explico como criar a ligação
https://pplware.sapo.pt/tutoriais/asp-net-%E2%80%93-membership/
Em suma é preciso ter no web.config uma entrada no nó connectionstrings com o nome GoodToWorkEntityContainer. Em baixo:
Não consegui escrever o xml
podem sacar daqui
http://www.fileswap.com/dl/1jEEE2J7/App.Config.html
http://www.fileswap.com/dl/VeVSJJHa/web.config.html
Muito bom tutorial… quando sai a próxima lição?
Boas,
Eu sei que provavelmente este não é local mais indicado para fazer isto mas cá vai!
Eu tenho uma aplicação asp e precisava de ler dados da porta COM no lado do cliente? Isto é possível de se fazer sem ter de criar uma aplicação intermédia que esteja instalada no cliente?
Obrigado
Olá Henrique, irá lançar as próximas lições?
boas,
eu tentei fazer o donwload , estou a inicializar asp agora ..
e quando corro o programa , da a mensagem que nao e possivel aceder a BD.
Alguem me pode ajudar ?
Boa noite, estes tutoriais de memberships e admin, também se aplicam a quem comece um probjecto mas que seja de website?
Abraço e continuação com os tutorias, sempre dão grande ajuda 🙂
Olá Henrique Graça,
Tenho uma duvida. Inicialmente tinha o mesmo problema que o @João Branco, mas depois de alterar Web.config com a connection que está presente no App.config dá me este erro:
“The metadata specified in the connection string could not be loaded. Consider rebuilding the web project to build assemblies that may contain metadata. The following erro(s) occured: Unable to load the specfied metadata resource.”
Já fiz clean & build, e continua com o erro sem eu conseguir passar daqui.
What I have missed?
Deixo aqui os links das imagens,
(Antes de adicionar connectionString no Webconfig)
http://www.rafaelcardoso.com/dl/antes.jpg
(Depois de adicionar connectionString no Webconfig)
http://www.rafaelcardoso.com/dl/depois.jpg
O que houve com a continuidade dos tutoriais de asp .net ? há mais de 1 ano sem nada =/ sempre me foram de grande ajuda
Esta em avaliação
Era muito bom se este conjunto de tutoriais não ficasse por aqui 😉
Então Pedro Pinto?
Existe continuação ou não?!
Abraço e continuem com o vosso bom trabalho!!!!!