Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Ricorsività su Controls

    Sto tentando di fare un metodo che aggiunge uno script a tutte le textbox della pagina (passandogli il form principale):

    codice:
             Public Shared Sub HighLight_TextBox(ByVal form_pagina As HtmlForm)
                For Each controllo As Control In form_pagina.Controls
                    If TypeOf controllo Is TextBox Then
                        Dim tb As New TextBox
                        tb = DirectCast(controllo, TextBox)
    
                        tb.Attributes.Add("onMouseOver", "this.style.backgroundColor='#FFFFE0';")
                        tb.Attributes.Add("onMouseOut", "this.style.backgroundColor='#FFFFFF';")
    
                        tb.Attributes.Add("onFocus", "this.style.backgroundColor='#FFFFE0';this.style.borderWidth='2px';")
                        tb.Attributes.Add("onBlur", "this.style.backgroundColor='#FFFFFF';this.style.borderWidth='2px';")
                    End If
                Next
            End Sub
    Ma ovviamente, se una textbox è contenuta in un'altro controllo (es. FieldSet), non viene considerata.

    Ricordo che una volta se ne è parlato, di ricorsività. Ma non trovo il thread...Qualcuno ricorda come fare ?

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ma scusa, perchè non usi i temi?

    Basta fare un tema con uno SkinFile, per esempio con l'istruzione:

    <asp:TextBox runat="server" BorderStyle="Solid" BorderWidth="1px" BorderColor="#A5A5A2"></asp:TextBox>

    e non ci pensi più
    Pietro

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    HighLight_TextBox(Me.Form)

    codice:
        Public Shared Sub HighLight_TextBox(ByVal container As Control)
            For Each controllo As Control In container.Controls
                If TypeOf controllo Is TextBox Then
                    Dim tb As New TextBox
                    tb = DirectCast(controllo, TextBox)
    
                    tb.Attributes.Add("onMouseOver", "this.style.backgroundColor='#FFFFE0';")
                    tb.Attributes.Add("onMouseOut", "this.style.backgroundColor='#FFFFFF';")
    
                    tb.Attributes.Add("onFocus", "this.style.backgroundColor='#FFFFE0';this.style.borderWidth='2px';")
                    tb.Attributes.Add("onBlur", "this.style.backgroundColor='#FFFFFF';this.style.borderWidth='2px';")
    
                    tb.Style.Add("border", "2px green solid")
                End If
                HighLight_TextBox(controllo)
            Next
        End Sub
    Pietro

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da pietro09
    HighLight_TextBox(Me.Form)

    codice:
        Public Shared Sub HighLight_TextBox(ByVal container As Control)
            For Each controllo As Control In container.Controls
                If TypeOf controllo Is TextBox Then
                    Dim tb As New TextBox
                    tb = DirectCast(controllo, TextBox)
    
                    tb.Attributes.Add("onMouseOver", "this.style.backgroundColor='#FFFFE0';")
                    tb.Attributes.Add("onMouseOut", "this.style.backgroundColor='#FFFFFF';")
    
                    tb.Attributes.Add("onFocus", "this.style.backgroundColor='#FFFFE0';this.style.borderWidth='2px';")
                    tb.Attributes.Add("onBlur", "this.style.backgroundColor='#FFFFFF';this.style.borderWidth='2px';")
    
                    tb.Style.Add("border", "2px green solid")
                End If
                HighLight_TextBox(controllo)
            Next
        End Sub
    Grazie, nel frattempo ci ero arrivato, anche io rimuovendo il vincolo di HtmlForm.
    Complimenti per il bordino verde

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    Complimenti per il bordino verde
    ERA SOLO UNA PROVA...
    Pietro

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Dim tb As New TextBox
    tb = DirectCast(controllo, TextBox)



    :quote: a parte il bordino verde-pisello di 2 px, quello è meglio scriverlo così:

    Dim tb as TextBox = DirectCast(controllo, TextBox)

    il new non ci sta a fare niente
    Pietro

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    codice:
       If TypeOf controllo Is TextBox Then
           DirectCast(controllo, TextBox).Attributes.Add("onMouseOver", "this.style.backgroundColor='#FFFFE0';")
           DirectCast(controllo, TextBox).Attributes.Add("onMouseOut", "this.style.backgroundColor='#FFFFFF';")
    
           DirectCast(controllo, TextBox).Attributes.Add("onFocus", "this.style.backgroundColor='#FFFFE0';")
           DirectCast(controllo, TextBox).Attributes.Add("onBlur", "this.style.backgroundColor='#FFFFFF';")
       End If


  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ma quanti trilioni di volte fai il direct cast? :master:
    Pietro

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da pietro09
    ma quanti trilioni di volte fai il direct cast? :master:
    dici che e' dispendioso ? era per discuterne... :master:

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    dici che e' dispendioso ? era per discuterne... :master:
    Boh! non so, forse :master:
    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.