Visualizzazione dei risultati da 1 a 6 su 6

Discussione: PostBack e ImageButton

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    7

    PostBack e ImageButton

    Ciao a tutti

    Premetto che sono un neofita di asp.net e c#. Ho scritto il codice

    protected void Page_Load(object sender, EventArgs e)
    {
    carica();
    }
    protected void carica()
    {
    ImageButton img1 = new ImageButton();
    img1.ImageUrl = "~/Images/add.jpg";
    img1.Click += new ImageClickEventHandler(prova1);
    Form.Controls.Add(img1);
    }
    protected void prova1 (object sender, ImageClickEventArgs e)
    {
    ImageButton img2 = new ImageButton();
    img2.ImageUrl = "~/Images/del.jpg";
    img2.Click += new ImageClickEventHandler(prova2);
    Form.Controls.Add(img2);
    }
    protected void prova2(object sender, ImageClickEventArgs e)
    {
    Label1.Text = "prova2";
    }

    Quando lo eseguo premendo il pulsante img1, mi appare il pulsante img2.
    Quando clicco su img2 anzichè farmi vedere il testo della label mi fa scomparire il pulsante
    img2 e nella pagina mi resta solo il pulsante img1. Come posso risolvere?
    Credo che si tratti di un problema di postback dei pulsanti, ma non so come procedere

  2. #2
    Chi non cerca trova.

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    La legge è: i controlli creati da codice debbono essere sempre ricreati ad ogni postback.
    Pietro

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Mi perdonerai se ti rispondo in basic

    codice:
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            carica()
        End Sub
    
        Protected Sub Carica()
            Dim img1 As New ImageButton()
            img1.ID = "img1"
            img1.ImageUrl = "~\immagini\cerca1.gif"
            AddHandler img1.Click, AddressOf prova1
            Me.PlaceHolder1.Controls.Add(img1)
    
            If Me.ViewState("carica2") IsNot Nothing Then
                Carica2()
            End If
    
        End Sub
    
        Protected Sub prova1(ByVal sender As Object, ByVal e As ImageClickEventArgs)
            Me.Label1.Text = "prova1"
            If Me.ViewState("carica2") Is Nothing Then Carica2()
        End Sub
    
        Protected Sub Carica2()
            Dim img2 As New ImageButton()
            img2.ID = "img2"
            img2.ImageUrl = "~\immagini\cerca2.gif"
            AddHandler img2.Click, AddressOf prova2
            Me.PlaceHolder1.Controls.Add(img2)
            Me.ViewState("carica2") = True
    
        End Sub
    
        Protected Sub prova2(ByVal sender As Object, ByVal e As ImageClickEventArgs)
            Me.Label1.Text = "prova2"
        End Sub
    Pietro

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    7
    Ho provato la tua soluzione, ma non funziona dato che il viewstate va a true e perdo la funzionalità del secondo pulsante.

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da mrlgpp
    Ho provato la tua soluzione, ma non funziona dato che il viewstate va a true e perdo la funzionalità del secondo pulsante.
    :master: che strano! a me funziona, e bene

    Pietro

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.