Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4

    Gestione controllo Multiview

    Salve a tutti,
    stò lottando con il controllo Multiview e spero che
    qualcuno sappia darmi una mano :

    Stà sviluppando una pagina in asp.net - visual studio 2008 :

    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 riga di configurazione carica uno o più controlli
    (es.)
    ...

    viewSezione = new View();
    viewSezione.ID = "Sezione1" ;
    int indiceSezione = 0 ;
    ...

    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.MultiViewSezione.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 ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4
    trovato ! ...
    Il problema era che non gestivo la persistenza dei dati.

    In generale sul problema consiglio quest'articolo :
    ASP_NET_4GuysFromRolla_com Dynamic Web Controls, Postbacks, and View State.htm

    Nel mio caso in particolare le cose sembrano più complicate
    stando a quanto riportato in questi altri due articoli

    http://geekswithblogs.net/shahed/arc...03/121869.aspx

    http://david.safitech.com/?p=7

    ... non incoraggiano ad usare il Multiview direi ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.