Hoje dei por algo que considero uma falha no asp .NET 2.0. Imagine-se que se tem uma master page muito simples parecida com o seguinte:
< div >
< asp:contentplaceholder id="place1" runat="server" / >
< asp:contentplaceholder id="place2" runat="server" / >
< /div >
...
E agora tem-se uma página que usa esta master page também muito simples:
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/MasterPage.master" CodeFile="Default.aspx.cs" Inherits="_Default" %>
< asp:content contentplaceholderid="place1" runat="server" id="p1" / >
< asp:content contentplaceholderid="place2" runat="server" id="p2"/ >
A falha é a seguinte todos os controlos em aspx desde que sejam runat="server" podem ser acedidos no code behind através do seu ID, porque raio os controlos do tipo asp:Content são diferentes de todos os outros e não podem ser acedidos? É necessário fazer algo do género:
< asp:content contentplaceholderid="place1" runat="server" id="p1" >
< asp:placeholder runat="server" id="este_e_visto" / >
< /asp:Content >
E pode-se agora aceder ao objecto "este_e_visto", para chegar ao simples objectivo de colocar conteúdo dentro do objecto asp:Content.
Sem comentários:
Enviar um comentário