• User Newbie

    Parametri e popup

    Salve a tutti,

    questo è il mio primo post in questo forum e chiedo a qualche esperto del settore ASP.Net un parere per meglio affrontare un classico problema nella programmazione di pagine web.

    Sto sviluppando un'applicazione in Asp.Net 2.0 e ho la seguente situazione :

    -) 1 pagina classica di form dove l'utente inserisce varie informazioni.
    -) n pagine di dettaglio delle informazioni da inserire che si aprono a popup dalla pagina di form del punto precedente.

    Lo scenario è che l'utente si trova nella pagina di form e per alcune informazioni deve scendere in dettaglio cliccando su di un bottone che apre un popup e, ad informazione inserita, chiude per tornare sulla pagina di form. Ora quando inoltro il form devo ovviamente conoscere le informazioni inserite nelle pagine popup di dettaglio, inoltre sarebbe opportuno poter già visualizzare le scelte sulla pagina di form in modo da riaprire il popup dettaglio in caso di errore.

    Il primo problema che ho è che quando chiudo la finestra di popup dovrei forzare un postback sulla pagina form per caricare i valori inseriti in dettaglio.

    Il secondo problema è accedere a queste informazioni, ma potrei risolverlo con la sessione, che ne dite ?

    Ringrazio per l'attenzione e spero di non aver chiesto troppo come primo thread :rollo:

    Ciao!


  • Moderatore

    Ciao Larry e benvenuto nel Forum GT!
    Se programmi in ASP.NET 2.0 non hai necessità di usare variabili di sessione per passare informazioni da un form ad un altro in quanto tutto lo "status" di una sessione web lo puoi controllare lato server se utlizzi:

    1- progettazione e programmazione object-oriented
    2- gestione di Pannelli di controlli web
    3- gestione degli eventi (onLoad, ...) nelle pagine asp.net

    Un buon punto di partenza per i punti 2 e 3 è dato dal seguente script:

    ASP.NET version of "Wizard (Multi-Page Form)"

    Per il punto 1 cerca un buon manuale su Google!

    PS: ti consiglio di lasciar perdere i pop-up perchè sempre più spesso vengono bloccati dai browser ( o dalle toolbars) rendendo i form poco utilizzabili. Molto meglio se inizi da subito a dare uno sguardo alla programmazione tramite AJAX

    Buon lavoro!

    :ciauz:


  • User Newbie

    Ciao paocavo,

    grazie per le info e data la tua disponibilità ne approfitto per deviare un secondo su Ajax.

    La mia applicazione è ovviamente per una intranet e pertanto il problema popup è alquanto limitato. Ho fatto due pagine web master e dettaglio del tipo :

    Pagina Master

    
    PartialPublicClass Master
    Inherits System.Web.UI.Page
    ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
    Dim script AsString = "<script type=""text/javascript"">" & vbCrLf & _
    "<!--" & vbCrLf & _
    "function update(elemValue) {" & vbCrLf & _
    "document.getElementById('Nome').innerText=elemValue[0];" & vbCrLf & _
    "document.getElementById('Cognome').innerText=elemValue[1];" & vbCrLf & _
    "}" & vbCrLf & _
    "//-->" & vbCrLf & _
    "</script>"
     
    ClientScript.RegisterClientScriptBlock(GetType(Master), "update", script)
    Button.Attributes.Add("onclick", "window.open('Dettaglio.aspx',null,'left=400, top=100, height=350, width= 350, " & _
    "status=no, resizable= no, scrollbars= no, toolbar= no,location= no, menubar= no');")
    EndSub
    EndClass
    
    

    Pagina Popup :

    
    PublicPartialClass Dettaglio
    Inherits System.Web.UI.Page
    ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
    IfNot IsPostBack Then
    Dim script AsString = "<script type=""text/javascript"">" & vbCrLf & _
    "<!--" & vbCrLf & _
    "function Done() {" & vbCrLf & _
    "var fName=document.getElementById('dettNome').value; " & vbCrLf & _
    "var lName=document.getElementById('dettCognome').value; " & vbCrLf & _
    "var ret= new Array(fName,lName);" & vbCrLf & _
    "window.opener.update(ret); " & vbCrLf & _
    "window.close(); " & vbCrLf & _
    "}" & vbCrLf & _
    "//-->" & vbCrLf & _
    "</script>"
    ClientScript.RegisterClientScriptBlock(GetType(Master), "Done", script)
    EndIf
    
    EndSub
    EndClass
    
    

    In questo modo riesco a passare dei dati dal popup alla pagina form, in questo caso ho Nome e Cognome (2 textbox) in Master e dettNome e dettCognome (2 textbox) in Dettaglio (ES. STUPIDISSIMO !!!).

    Nel dettaglio (popup) ho un pulsante che nell'evento OnClick richiama la funzione script Done().

    Diciamo che in questo modo ho semirisolto. Non so quanto sia elegante la mia soluzione però ...

    Ora il problema che dovevo affrontare era quello di aprire delle finestre secondarie per non appensatire la finestra principale. Con AJAX cosa ci facevo ? Considera che non so nulla di AJAX !!! Se non che dovrebbe essere un insieme di tecnologie in parte lato client e in parte lato server che permettono di rendere più user friendly e simile ad un'applicazione desktop una applicazione web.