Tidigare när jag höll på med ASP 3.0 så använde jag mig av en sida som laddade in olika sidor genom Server.Execute, typ; Jag skulle nog kört paneler istället. Användarkontroller låter bra...Server.Execute eller användarkontroller?
default.asp
<code>
<html>
<body>
<table>
<tr>
<td><%Server.Execute("meny.asp")%></td>
<td><%Server.Execute("startsida.asp.asp")%></td>
<td><%Server.Execute("höger.asp")%></td>
</tr>
</table>
</body>
</html>
</code>
Men om jag vill göra på liknande sätt i ASP.NET hur får jag sidan att laddas i rätt cell
default.aspx
<code>
<html>
<body>
<table>
<tr>
<td>Här vill jag att sidan ska exekveras</td>
<td>Här vill jag att sidan ska exekveras</td>
<td>Här vill jag att sidan ska exekveras</td>
</tr>
</table>
</body>
</html>
</code>
default.aspx.vb
<code>
Server.Execute("meny.asp")
Server.Execute("startsida.asp")
Server.Execute("höger.asp")
</code>
Jag har även tänkt på användarkontroller, men då förstår jag inte hur jag ska kunna ladda in en sida dynamiskt beroende på vilken länk jag klickar på. Jag menar, man har ju både prefixet som måste in högst upp i direktivet (@ Page). och själva användarkontrollen.
Kan någon reda ut detta för mig och vad rekommenderas?Sv: Server.Execute eller användarkontroller?
Panel1.visible = true o.s.v.
/mickeSv: Server.Execute eller användarkontroller?
Gör följande:
Skapa de användarkontroller du vill ha (t.ex. UserControl1, UserControl2, UserControl3). På sidan där du vill lägga in dem:
<td><asp:placeholder runat="server" id="phHolder1"></td>
<td><asp:placeholder runat="server" id="phHolder2"></td>
<td><asp:placeholder runat="server" id="phHolder3"></td>
Sedan har du i codebehind:
dim p1 as UserControl1
p1 = ctype(LoadControl("UserControl1.ascx"), UserControl1)
dim p2 as UserControl2
p2 = ctype(LoadControl("UserControl2.ascx"), UserControl2)
dim p3 as UserControl3
p3 = ctype(LoadControl("UserControl3.ascx"), UserControl3)
me.phHolder1.Controls.Add(p1)
me.phHolder2.Controls.Add(p2)
me.phHolder3.Controls.Add(p3)
Vad den här koden gör är att ladda in usercontrol1 i phHolder1, uc2 i ph2, uc3 i ph3. Självklart måste detta göras varje gång sidan laddas.