per la seconda possibilità ti faccio vedere due metodi, quello del findcontrol e uno un po piu OOP e che preferisco.
nel div della master page ho due label, le popolo entrambe dalla pagina child, la prima usando findcontrol mentre la seconda la bindo ad una proprietà definita a livello di classe nella pagina master.
MASTER PAGE
codice:
<body>
<form id="form1" runat="server">
<div>
<div id="div_dinamico">
<h3>Contenuto Master Page</h3>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
<asp:Label ID="Label2" runat="server" Text=""></asp:Label>
</div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
CODICE MASTER PAGE
codice:
public partial class Site1 : System.Web.UI.MasterPage
{
public string Testo2 { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
Label2.Text = Testo2;
}
}
CHILD PAGE
codice:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<h3>Child Page</h3>
</asp:Content>
CODICE CHILD PAGE
codice:
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label label1 = Master.FindControl("Label1") as Label;
if (label1 != null)
label1.Text = "Testo 1 da Child Page";
(Master as Site1).Testo2 = "TESTO 2 da Child page"; //necessario il cast a tipo della classe derivata (il nome della masterpage) !
}
}