Salve a tutti,
stò lottando con il controllo Multiview e spero che
qualcuno sappia darmi una mano :
Stà sviluppando una pagina in asp.net :
L'idea è questa :
Ho una pagina che al caricamento deve essere popola con una sezie di controlli (label, textbox, dropdownlist) i controlli sono raggruppati per "Sezioni".Quindi ho messo un controllo Multiview su una pagina
aspx. Al caricamento della pagina leggo da un db i dati per determinare quali e quanti controlli caricare e procedo così :
creo un view lo aggiungo al multiview , aggiungo al singolo view i controlli. Così per n view.
Adesso vorrei poter navigare tra le "sezioni" , spostandomi tra una view è l'altra.
In pratica il mio codice si può riassumere così :
protected void Page_PreInit(Object sender, EventArgs e)
{
if (!IsPostBack)
{
CaricaControlli();
this.MultiViewSezioni.ActiveViewIndex = 0;
}
}
private void CaricaControlli()
{
legge da db
loop sui record
per ogni sezione carica uno o più controlli
(es.)
...
viewSezione = new View();
viewSezione.ID = "Sezione1" ;
int indiceSezione = 1 ;
...
label = new Label();
label.ID = "lblSezione" ;
label.Text = "testoLabelSezione";
this.MultiViewSezioni.Views[indiceSezione].Controls.Add(label);
...
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication.WebForm1" %>
<!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></title>
</head>
<body>
<form id="form1" runat="server">
<asp:MultiView ID="MultiViewSezioni" runat="server">
</asp:MultiView>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="Default.aspx">Torna alla pagina principale</asp:HyperLink>
</form>
</body>
</html>
Riesco a visualizzare correttamente la prima view con tutti i controlli
( this.MultiViewSezioni.ActiveViewIndex = 0; ).
Il mio problema è che non riesco a navigare tra le view , ottengo sempre l'errore :
ActiveViewIndex is being set to '0'. It must be smaller than the current number of View controls '0'.
For dynamically added views, make sure they are added before or in Page_PreInit event. Parameter name: value
Ho provato a inserire dei bottoni in cui inserire i diversi comandi di navigazione :
NextView/PrevView , SwitchViewByID, settare MultiView1.ActiveViewIndex += 1 / -= 1 .
Nulla !
Cosa sbaglio ?
p.s.
Visto cosa voglio fare il controllo MultiView è una buona scelta ?