• Nenhum resultado encontrado

Web User Control. No projeto, adicione as pastas Content e Header, conforme a figura

N/A
N/A
Protected

Academic year: 2021

Share "Web User Control. No projeto, adicione as pastas Content e Header, conforme a figura"

Copied!
10
0
0

Texto

(1)

Web User Control

Abrir o Visual Studio

Abrir o projeto WebHeranca

No projeto, adicione as pastas Content e Header, conforme a figura

Adicione um Novo Item na pasta Header.

(2)

No código do Cabecalho.ascx, coloque

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Cabecalho.ascx.cs"

Inherits="Content_Header_Cabecalho" %> <div class="container">

<div class="div1">

<asp:Label ID="lblData" runat="server" Text=""></asp:Label> </div>

<div class="div2">

<asp:Label ID="lblProjeto" runat="server" Text="Projeto de Exemplo"></asp:Label> </div>

</div> <style>

.container { border: 1pt solid black; clear:both} .div1 { float: left; width: 45%; text-align:center}

.div2 { margin-left: 50%; width: 45%; text-align:center } </style>

No código do Cabecalho.ascx.cs, coloque

protected void Page_Load(object sender, EventArgs e) {

lblData.Text = DateTime.Now.ToString("dd/MM/yyyy"); }

Agora, é necessário colocar esse cabeçalho nas páginas.

Para isso, abra a página que deseja colocar o cabeçalho.

Em seguida, arraste o Cabecalho.ascx para a posição desejada.

Repita isso para as páginas que desejar.

Execute a aplicação

Luiz Eduardo Guarino de Vasconcelos WebForms – Web User Control e Master Page

(3)

Caso queria alterar dinamicamente o conteúdo do web user control a partir de uma página (aspx),

segue o exemplo. Nesse caso, a alteração é feita no Page_Load da página Cadastrar.aspx.

protected void Page_Load(object sender, EventArgs e) {

//carrega somente a primeira vez if (!Page.IsPostBack) { CarregaPilotos(); ddlPiloto.Focus(); Content_Header_Cabecalho cabecalho = (Content_Header_Cabecalho)Page.FindControl("Cabecalho1");

Label lblProjeto = cabecalho.FindControl("lblProjeto") as Label; lblProjeto.Text = "Exemplo de projeto";

} }

(4)

Master Page

Crie a pasta Master dentro de Content

Adicione um novo item dentro da pasta Master, do tipo MasterPage, chamado Principal.master

A página Master já possui uma tag <form> e a estrutura padrão de um documento HTML (<html>

<head> <body>). Assim, as páginas que irão usar a Master, não podem ter essas informações. Além

disso, em Web Forms, o ASP.NET aceita apenas uma tag <form> por página.

O objetivo da Master é padronizar o layout de um site. Para isso, alguns trechos da Master podem

ser substituídos por cada página (destacado em amarelo).

Luiz Eduardo Guarino de Vasconcelos WebForms – Web User Control e Master Page

(5)

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Principal.master.cs"

Inherits="Content_Master_Principal" %> <!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">

<title></title>

<asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder>

</head> <body>

<form id="form1" runat="server"> <div>

Acima do conteúdo a ser alterado.

<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>

Abaixo do conteúdo a ser alterado. </div>

</form> </body> </html>

Adicionar uma página (com MasterPage) para Alterar um Carro.

Adicione um Novo Item (WebForm) na pasta Paginas/Equipe/Carro.

(6)

Selecione WebForm, defina o nome da página (Alterar.aspx) e marque a opção “Select Master

Page”.

Ao clicar em Add, selecione a Master Page desejada.

Luiz Eduardo Guarino de Vasconcelos WebForms – Web User Control e Master Page

(7)

A estrutura do arquivo é

<%@ Page Title="" Language="C#" MasterPageFile="~/Content/Master/Principal.master"

AutoEventWireup="true" CodeFile="Alterar.aspx.cs" Inherits="Paginas_Equipe_Carro_Alterar" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<%--Substitui o bloco no HEAD da Master Page--%> </asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> Substitui o bloco no BODY da Master Page

</asp:Content>

Observe em Modo Design esta página.

Faça a seguinte alteração.

<%@ Page Title="" Language="C#" MasterPageFile="~/Content/Master/Principal.master"

AutoEventWireup="true" CodeFile="Alterar.aspx.cs" Inherits="Paginas_Equipe_Carro_Alterar" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<%--Substitui o bloco no HEAD da Master Page--%> <style> .container{ width:100%; } </style> </asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <div id="container">

Alteração de carro </div>

</asp:Content>

(8)

Para definir uma Master Page para páginas (WebForm) existentes, são necessárias algumas

alterações.

Abra a página Lista_Repeater.aspx, em modo Source.

1) A primeira linha da página deve ser alterada, acrescentando 2 atributos (Title e MasterPageFile)

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Listar_Repeater.aspx.cs"

Inherits="Paginas_Equipe_Carro_Listar_Repeater" Title=""

MasterPageFile="~/Content/Master/Principal.master" %>

2) Acrescente os blocos a seguir logo abaixo da primeira linha da página

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> </asp:Content>

3) Remova o trecho

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">

<title></title> </head>

<body>

<form id="form1" runat="server">

4) Remova o trecho

</form> </body> </html>

5) Copie a <div>...</div> que sobrou para dentro do

Content2

A página deve ficar como:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Listar_Repeater.aspx.cs"

Inherits="Paginas_Equipe_Carro_Listar_Repeater" Title=""

MasterPageFile="~/Content/Master/Principal.master" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <div>

<asp:Repeater ID="rptCarros" runat="server" OnItemCommand="rptCarros_ItemCommand"

OnItemDataBound="rptCarros_ItemDataBound"> <ItemTemplate>

<div> <p>

Carro número: <asp:Label ID="lblNumero" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "car_numero") %>'></asp:Label>

Luiz Eduardo Guarino de Vasconcelos WebForms – Web User Control e Master Page

(9)

</p> <p>

Potência (quantidade de cavalos): <asp:Label ID="lblPotencia"

runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "car_potencia") %>'></asp:Label>

</p> <p>

Piloto: <asp:Label ID="lblPiloto" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "mem_nome") %>'></asp:Label>

</p> <p>

<asp:Button ID="btnAlterar" runat="server" Text="Alterar"

CommandArgument='<%# DataBinder.Eval(Container.DataItem, "car_codigo") %>'

CommandName="alterar" CausesValidation="false"/> </p> </div> </ItemTemplate> </asp:Repeater> </div> </asp:Content>

Execute a aplicação.

(10)

Alterando o conteúdo dinamicamente da Master Page a partir do Web Form.

Adicione um Label na Master Page

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Principal.master.cs"

Inherits="Content_Master_Principal" %> <!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">

<title></title>

<asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder>

</head> <body>

<form id="form1" runat="server"> <div>

Acima do conteúdo a ser alterado.

<asp:Label ID="lblConteudo" runat="server" Text="Conteúdo Inicial"></asp:Label> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>

Abaixo do conteúdo a ser alterado. </div>

</form> </body> </html>

No Page_Load da Listar_Repeater.aspx

protected void Page_Load(object sender, EventArgs e) {

if (!Page.IsPostBack) {

CarregaCarros();

Label lblConteudo = Master.FindControl("lblConteudo") as Label; lblConteudo.Text = "Novo conteúdo";

} }

Execute a aplicação.

Luiz Eduardo Guarino de Vasconcelos WebForms – Web User Control e Master Page

Referências

Documentos relacionados

manutenção e suporte técnico de software destinado a Gestão do Programa Bolsa Família, Cadastro Único para gestão de políticas públicas integradas, gestão social,

SERGIO AP LEONI / ANDREA FUZIMOTO LEONI EDUARDO COLMANETTI ASSESSORIA ESPORTIV. 40º RIBEIRAO

O artigo deverá conter no mínimo 5 (cinco) e no máximo 15 (quinze) páginas não numeradas, incluindo tabelas, quadros e figuras, e ser apresentado em uma coluna. A fonte deverá

A Bacia de Evapotranspiração mostrou-se uma tecnologia de grande valor ambiental por garantir o tratamento das águas negras sem causar danos ao solo ou ao lençol freático, com

DEPARTAMENTO DE GENÉTICA Unidade de Citogenética Unidade de Genética Médica Unidade de Genética Molecular Unidade de Rastreio Neonatal Unidade de Investigação e

b) Espessura da caixa fica sob responsabilidade do fabricante, devendo o projeto atender aos requisitos de desempenho desta norma. c) Deve possuir dispositivo

Ademais, foram acrescentados textos extraídos de periódicos, que foram selecionados por serem parte da atualidade dos discentes. Em especial, buscamos selecionar acontecimentos de

Em termos da orgânica do novo Instituto, optou-se por uma estrutura simples que, garantindo a desejada coordenação das actividades, remete para as delegações a criar uma ampla