Visualizzazione dei risultati da 1 a 6 su 6

Discussione: postback

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127

    postback

    ho un custom control
    codice:
    Protected Overrides Sub OnInit(ByVal e As EventArgs)
            'Protected Overrides Sub CreateChildControls()
    qua si leggono i dati dal db e li si scrive sotto forma di checkbox list!
        End Sub
    
        Overridable Sub RaisePostBackEvent(ByVal eventArgument As String) Implements IPostBackEventHandler.RaisePostBackEvent
    ke l'ho messa a fare questa sub?
        End Sub
    
        Sub cmdInvia_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    qui si scrive sul db
        End Sub
        Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
            MyBase.Render(output)
        End Sub
    a parte ke non so mai se mettere OnInit o CreateChildControls, ora al clik su cmdInvia registra i dati nel db ma non aggiorna la pagina
    io sto diventando scemo!
    qualcuno ha un esempio funzionante

    buon natale!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    aggiungo ke ad ora lo sto facendo andare facendo uno squallido redirect alla stessa pagina nel codice del click sul bottone

  3. #3
    se ti fai una funzione di aggiornamento sulla pagina che contiene il controllo, per esempio un

    codice:
    public void initPage()
    {
       //databind di datagrid
       //testo su textbox
       //...
    }
    puoi richiamarla dal controllo con un

    codice:
    ((cast_a_classe_pagina_aspx)Parent.Parent).initPage()
    a tal proposito ti consiglio di estendere le tue pagine aspx non da Page, ma da una tua pagina personalizzata, per esempio

    codice:
    class SitoWebPage : Page
    {
            public virtual void initPage()
    	{
    		//metodo virtuale da "overridare" sulla tua pagina 	
    	}
    }
    questo perchè così hai il metodo initPage su ogni pagina del tuo sito, e il controllo non ti va in errore, altrimenti puoi mettere un blocco try/catch.

    il cast del Parent sul controllo, una volta che estendi le pagine che lo contengono dalla tua classe personalizzata, lo fai così:

    codice:
    ((SitoWebPage)Parent.Parent).initPage();
    sulle pagine aspx dove ne hai bisogno puoi fare l'override della funzione virtual (insomma, più o meno come il "override protected void OnInit(EventArgs e)" che mette visualstudio:

    codice:
    public override void initPage()
    {
       //databind di datagrid
       //testo su textbox
       //...
    }
    probabilmente il framework mette a disposizione qualche oggettino, ma questo è più "object oriented" e quindi a mio giudizio la soluzione più "trasparente"

    ciao!
    If you want a picture of the future, imagine a boot stamping on a human face-for ever.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    se ti fai una funzione di aggiornamento sulla pagina che contiene il controllo, per esempio un
    io vorrei ke tutto ciò avvenisse nel custom control, cioè poi lo inserisci nella pagina e basta, non devi modificare oltre

    grazie!

  5. #5
    il tuo problema credo sia che l'evento load della pagina avviene prima dell'esecuzione del click sul bottone del controllo, è capitato anche a me ed ho risolto in questo modo.
    avevo il problema di un salvataggio su db con un controllo ed una datagrid sulla pagina, che veniva aggiornata prima che si verificasse l'inserimento.
    lo so, è un workaround, ma non so cosa mette a disposizione il framework per aggiornare la pagina da un suo controllo figlio.

    If you want a picture of the future, imagine a boot stamping on a human face-for ever.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    uppo dopo due giorni festivi

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 © 2024 vBulletin Solutions, Inc. All rights reserved.