Flerbrukssider
Koden som får dette til å tikke er best illustrert ved følgende svært enkle versjon av Page_Load i den "code-behind"-fila som lages for vår sammensatte side:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) MultiView1.SetActiveView(View1); }
Altså hvis det er første gangen siden lastes, viser vi View1. Hva vi skal gjøre i andre tilfeller kan vi kontrollere med å lese verdier og respondere på museklikk. F.eks. slik, en button-respons i samme fil:
protected void Submit3_ServerClick(object sender, EventArgs e) { // user has clicked a button that should be answered with View2 MultiView1.SetActiveView(View2); }
SetActiveView velger altså ut hva som skal returneres.
Et enkelt eksempel
Vi lager et enkelt eksempel basert på den strukturen vi brukte som illustrasjon ovenfor, faste felter oppe og nede på siden og en MultiView med tre Views.
Default.aspx.cs
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) MultiView1.SetActiveView(View1); else remember.Text += Convert.ToString(MultiView1.ActiveViewIndex+1); } protected void Button12_Click(object sender, EventArgs e) { MultiView1.SetActiveView(View2); } protected void Button13_Click(object sender, EventArgs e) { MultiView1.SetActiveView(View3); } protected void Button21_Click(object sender, EventArgs e) { MultiView1.SetActiveView(View1); } protected void Button23_Click(object sender, EventArgs e) { MultiView1.SetActiveView(View3); } protected void Button31_Click(object sender, EventArgs e) { MultiView1.SetActiveView(View1); } protected void Button32_Click(object sender, EventArgs e) { MultiView1.SetActiveView(View2); } }
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Simple demo</title> </head> <body> <h1>Overskrift</h1> <p>Felles tekst øverst på siden</p> <p> <asp:Label ID="remember" runat="server" Text="Her har du vært:" Width="674px"></asp:Label> </p> <form id="form1" runat="server"> <div> <asp:MultiView ID="MultiView1" runat="server"> <!-- View 1 --> <asp:View ID="View1" runat="server"> <fieldset style="padding:10px"> Dette er View 1. Hva vil du se nå:<br /> <asp:Button ID="Button12" runat="server" Text="View2" OnClick="Button12_Click" /> <asp:Button ID="Button13" runat="server" Text="View3" OnClick="Button13_Click" /> </fieldset> </asp:View> <!-- View 2 --> <asp:View ID="View2" runat="server"> <fieldset style="padding:10px"> Dette er View 2. Hva vil du se nå:<br /> <asp:Button ID="Button21" runat="server" Text="View1" OnClick="Button21_Click" /> <asp:Button ID="Button23" runat="server" Text="View3" OnClick="Button23_Click" /> </fieldset> </asp:View> <!-- View 3 --> <asp:View ID="View3" runat="server"> <fieldset style="padding:10px"> Dette er View 3. Hva vil du se nå:<br /> <asp:Button ID="Button31" runat="server" Text="View1" OnClick="Button31_Click" /> <asp:Button ID="Button32" runat="server" Text="View2" OnClick="Button32_Click" /> </fieldset> </asp:View> </asp:MultiView> </div> </form> <p>Felles tekst nederst på siden</p> </body> </html>