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

    Usare Master page + Updatepanel al posto dei frames

    Sono nuovo in asp.net, ma sto cercando di rifare il mio sito abbandonando una struttura statica che prevede un layout con un iframe al centro.

    Pensavo di utilizzare una soluzione che prevedesse una masterpage. Dal momento che la masterpage e le content pages non sono affatto pagine separate, ogni volta che si passa da una content page a un'altra, nell'ambito dello stesso layout definito dalla comune masterpage, si vede un refresh dello schermo, perché appunto il server consegna una pagina nuova all'utente.

    Ora, mi hanno detto che utilizando il controllo updatepanel è possibile un update parziale (e un refresh altrettanto parziale). In pratica il layout della master page comune alle content pages rimarrebbe là dov'è e solo la content page all'interno di quel layout cambierebbe.

    In linea teorica ho capito come debbo agire, ma non ci riesco.

    Ho creato una master page che rassomiglia a questa:

    codice:
    <%@ Master Language="C#"  %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    
    <script runat="server"></script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    
    <head runat="server">
    
    <body>
    
    <form id="form1" runat="server">
           <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" SupportsPartialRendering="true" runat="server"></asp:ScriptManager>
    
           <div>Layout ecc. ecc.</div>
                  <div>
                         <asp:contentplaceholder id="ContentPlaceHolder1" runat="server"></asp:contentplaceholder>
                  </div>
            <div>Layout continua, ecc. ecc.</div>
        
    </form>
        
    </body>
    
    </html>
    Poi ho creato alcune content pages modellate più o meno così:

    codice:
    <%@ Page Language="C#" MasterPageFile="path della masterpage..." Title="Untitled Page" AutoEventWireup="true"  CodeFile="default.aspx.cs" Inherits="_Default" %>
    <%@ MasterType VirtualPath="path della masterpage..." %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    
           <asp:UpdatePanel id="Updatepanel1" runat="server">
                 <ContentTemplate>
                       <div>contenuto della content page</div>
                 </ContentTemplate>
           </asp:UpdatePanel>
    
    </asp:Content>
    tuttavia così com'è non funziona (le pagine vengono caricate nel browser, ma l'update panel non funziona

    so che dovrei inserire un trigger nell'updatepanel, subito dopo il tag contenttemplate

    in pratica: quando l'utente clicca un link qualunque nel mio sito, il contenuto dell'UpdatePanel1 dovrebbe cambiare - l'effetto sarebbe proprio quello dei frames o degli iframe, dando l'impressione di continuità tra le pagine, senza refresh nella parte del layout e con tutti i vantaggi dell'asp.net...

    mi hanno detto che non posso usare i normali hyperlink ("a href"), ma dovrei convertire tutti i link in linkbuttons e convertire le page content in user control

    solo non so proprio come fare, mi aiutereste?

    un'altra cosa: ho notato che da quando ho messo quell'updatepanel tutti i javascript contenuti nel contenttemplate non partono più...
    credo che la cosa dipenda dallo scriptmanager... cosa debbo fare per farli funzionare?

    grazie 1000

  2. #2
    vedi se ci sono erroroni di javascript sulla console degli errori..

    prova a togliere tutti gli altri JS e a provare solo le funzionalità id ajax se va


    ti consiglio cmq di usare ajax solo su piccoli controlli, se cambi troppo, il tasto back non funziona e gli utenti, tornando indietro tornano chissà dove...
    Fiore Bat - www.bcscommunity.it

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.