Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di M@nu
    Registrato dal
    Dec 2001
    Messaggi
    352

    assegnare l'ID ad un controllo

    Ho una funzionicina per assegnare il bottone di default della pagina.
    E' nella declare così che mi vada bene in tutte le pagine con più di un bottone e quindi gli passo dei parametri.
    all'inizio l'avevo fatta così

    codice:
        Public Function SetBtnDefault(ByVal objfrm As HtmlControls.HtmlForm, ByVal btn$)
            objfrm.Attributes.Add("onkeypress", "if (event.keyCode == 13) { document.forms[0]." & btn & ".focus()};")
        End Function
    ma vorrei non passargli il nome del controllo form ma una stringa per risparmiarmi di dichiarare

    codice:
     Protected WithEvents Form1 As System.Web.UI.HtmlControls.HtmlForm
    nella pagina in cui chiamo la funzione.

    Quindi ho provato a fare

    codice:
     Public Function SetBtnDefault(ByVal frm As String, ByVal btn As String)
            Dim objfrm As HtmlControls.HtmlForm
            objfrm.ID = frm
            objfrm.Attributes.Add("onkeypress", "if (event.keyCode == 13) { document.forms[0]." & btn & ".focus()};")
        End Function
    ma non riesco ad assegnargli l'ID: mi da errore objfrm.ID = frm

    codice:
    Dettagli eccezione: System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto.
    
    Errore nel codice sorgente: 
    
    
    Riga 103:    Public Function SetBtnDefault(ByVal frm As String, ByVal btn As String)
    Riga 104:        Dim objfrm As HtmlControls.HtmlForm
    Riga 105:        objfrm.ID = frm
    Riga 106:        objfrm.Attributes.
    Qualcuno mi sa dire come assegnare l'ID?
    Grazie, ciao
    IL MONDO È BELLO PERCHÉ È VARIO.

  2. #2

    Re: assegnare l'ID ad un controllo

    Originariamente inviato da M@nu
    Qualcuno mi sa dire come assegnare l'ID?
    guardando di sfuggita il codice ti butto li la possibile soluzione:
    non basta dichiarare una variabile di un certo tipo cosi'
    codice:
    Dim objfrm As HtmlControls.HtmlForm
    ma e' necessario istanziarla prima di usarla cosi'
    codice:
    objfrm = New HtmlControls.HtmlForm
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it L'avatar di M@nu
    Registrato dal
    Dec 2001
    Messaggi
    352
    così non da più errore ma non scrive nemmeno lo script sul tag form....
    IL MONDO È BELLO PERCHÉ È VARIO.

  4. #4
    Originariamente inviato da M@nu
    così non da più errore ma non scrive nemmeno lo script sul tag form
    il tag form della pagina aspx? no che non te lo scrive. con il codice che hai usato hai istanziato un nuovo tag form di tipo html (non vorrei sbagliarmi ma non credo neanche sia dello stesso tipo presente di default sulle pagine aspx create da visual studio) e hai assegnato a questa tag form un id e degli attributi. A questo punto se lo lasci li senza farci nient'altro non credo che vedrai niente di diverso sulla pagina. Se la pagina aspx non avesse il form aspx (uno solo per ogni pagina) potresti provare ad aggiungerlo alla pagina stessa o ad un controllo contenitore agendo sulla proprieta' controls
    codice:
    page.controls.add(objform)
    Rileggendo quello che vuoi fare, non credo che riuscirai facilmente a spuntarla. In giro per la rete ci devono essere dei piccoli tutorial e articolini per fare cio (cosa peraltro utile) mi sembra di averli letti tempo fa. Se dovessi trovare il link te lo posto.
    Saluti a tutti
    Riccardo

  5. #5
    Utente di HTML.it L'avatar di M@nu
    Registrato dal
    Dec 2001
    Messaggi
    352
    in realtà io vorrei che il risultato finale sia questo
    codice:
    <form name="FrmContact" method="post" action="contact.aspx" language="javascript" onsubmit="if (!ValidatorOnSubmit()) return false;" id="FrmContact" onkeypress="if (event.keyCode == 13) { document.forms[0].btn_invia.focus()};" >
    lasciando come variabile il nome del bottone che voglio come principale per la pagina.
    magari sto facendo un sacco di casino per niente.....
    IL MONDO È BELLO PERCHÉ È VARIO.

  6. #6
    per registrare lo script, puoi usare RegisterOnSubmitStatement per registrare uno script da eseguire al submit:

    codice:
    Page.RegisterOnSubmitStatement("submitScript","alert('submit');");
    dovrebbe mettertelo nella stessa forma...

  7. #7
    Utente di HTML.it L'avatar di M@nu
    Registrato dal
    Dec 2001
    Messaggi
    352
    ciccia.... me lo mette come on submit, è una volta che ha fatto submit è già andato con l'altro button della pagina....
    ho provato ad usare altri metodi ma mi piazza lo script in mezzo all'html.
    Altri suggerimenti...?
    IL MONDO È BELLO PERCHÉ È VARIO.

  8. #8
    nella pagina aspx:
    codice:
    <form name="FrmContact" method="post" action="contact.aspx" language="javascript" onsubmit="if (!ValidatorOnSubmit()) return false;" id="FrmContact" onkeypress="if (event.keyCode == 13) { document.forms[0].<%=bottone.ClientID%>};" >

  9. #9
    Utente di HTML.it L'avatar di M@nu
    Registrato dal
    Dec 2001
    Messaggi
    352
    ho fatto così

    codice:
        Public Function SetDefaultBtn(ByVal This As Page, ByVal frm As String, ByVal btn As String)
            Dim objfrm As HtmlControls.HtmlForm
            objfrm = This.FindControl(frm)
            objfrm.Attributes.Add("onkeypress", "if (event.keyCode == 13) { document.forms[0]." & btn & ".focus()};")
        End Function
    non so se alla fine sia + complicato fare così ce scrivermelo nell'html cmq.....

    Grazie a tutti per l'aiuto
    IL MONDO È BELLO PERCHÉ È VARIO.

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.