Jag har precis börjat försöka lära mig asp.net och försöker nu få någon typ av grundförståelse för hur det hela fungerar. Antingen så skapar du en ContentPlaceholder till som innehåler rubriken, eller så skapar du en label som du säger. Men för att sätta värdet på din label måste du ha en property på din masterpage som din contentpage kan komma åt. Dessutom underlättar det om du lägger till ett <%@ MasterType %> direktiv på din contentpage. Typ:Ändra en asp:label i masterpage.
Vad jag vill göra är att lägga en label eller på något sätt ha en rubrik på min masterpage som jag kan ändra från filen som använder sig av masterpagen.
Mina filer:
layout.master:
<code>
<html>
<head runat="server">
<title></title>
</head>
<body>
<form runat="server">
<!-- Här vill jag lägga någon sorts rurik -->
<asp:ContentPlaceHolder id="MainContent" runat="server" />
</form>
</body>
</html>
</code>
somepage.aspx
<code>
<%@ Page masterpagefile="layout.master" title="test" Language="C#" codefile="testing_code.cs" Inherits="testing_code" %>
<asp:Content id="contents" ContentPlaceHolderID="MainContent" runat="server">
<p>
Seems to be working
</p>
</asp:Content>
</code>
testing_code.cs
<code>
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class testing_code: System.Web.UI.Page {
void Page_Load(Object sender, EventArgs e) {
}
}
</code>Sv: Ändra en asp:label i masterpage.
layout.master:
<code>
<html>
<head runat="server">
<title></title>
</head>
<body>
<form runat="server">
<asp:Label runat="server" id="myLabel" />
<asp:ContentPlaceHolder id="MainContent" runat="server" />
</form>
</body>
</html>
</code>
codebehind till layout.master
<code>
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class testing_code: System.Web.UI.MasterPage{
public string Headline
{
set { myLabel.Text = value; }
get { return myLabel.Text; }
}
}
</code>
somepage.aspx
<code>
<%@ Page masterpagefile="layout.master" title="test" Language="C#" codefile="testing_code.cs" Inherits="testing_code" %>
<%@ MasterType VirtualPath="~/layout.master" %>
<asp:Content id="contents" ContentPlaceHolderID="MainContent" runat="server">
<p>
Seems to be working
</p>
</asp:Content>
</code>
testing_code.cs
<code>
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class testing_code: System.Web.UI.Page {
void Page_Load(Object sender, EventArgs e) {
Master.Headline = "My headline";
}
}
</code>