Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    GetElementById e ClientID

    Buonasera, è da parecchio che sono bloccato con la mia applicazione asp.net ,vengo subito al dunque. Ho una TextBox e un ImageButton creati tutti e due a livello di programmazione.
    Alla pressione del Bottone devo eseguire una cancellazione del contenuto della TextBox. Il mio problema è che questo codice:
    TextBox testo=new TextBox();
    ImageButton Bottone=new ImageButton();
    this.Controls.Add(testo);
    this.Controls.Add(Bottone);
    Bottone.OnClientClick="javascript:esegui_azione('" + testo.ClientId + "')";

    non funziona perkè testo.ClientId dice che è nullo.

    ho provato ad aggiungere anche l'id manualmente e questi son stati i risultati:

    ho aggiunto : testo.Id="id_testo";

    il valore di ClientId è uguale a id_testo ma manca della prima parte dell'id chiaramente
    presente ( id_testo invece di ctl00_CMS_id_testo).

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: sinceramente non capisco il problema. Ho fatto questo esempio e funziona regolarmente
    codice:
    <%@ Page Language="VB" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim tb As New TextBox()
            Me.div1.Controls.Add(tb)
            
            Dim ib As New ImageButton()
            ib.OnClientClick = String.Format("return esegui_azione('{0}');", tb.ClientID)
            Me.div1.Controls.Add(ib)
            
            Me.ClientScript.RegisterClientScriptBlock(Me.GetType, "esegui_azione", "function esegui_azione(v){document.getElementById(v).value = '';return false;};", True)
            
        End Sub
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Pagina senza titolo</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div id="div1" runat="server"></div>
        </form>
    </body>
    </html>
    Pietro

  3. #3

    a me non funge, aiuto per favore

    codice:
    ((TextBox)dgItem.Cells[4].Controls[1]).Width = Unit.Pixel(400);
     ((Button)dgItem.Cells[4].Controls[5]).OnClientClick = String.Format("setVisible('layer1');setPopupText('{0}');return false;", dgItem.Cells[4].Controls[1].ClientID);
                       
     // ((Button)dgItem.Cells[4].Controls[5]).Attributes.Add("onclick", "");
                        this.ClientScript.RegisterClientScriptBlock(this.GetType(), "esegui_azione", "function esegui_azione(v){document.getElementById(v).value = '';return false;};", true);
    sinceramente non ho capito un granchè del modo di procedere, comunque la situazione è la seguente: ho un button all'interno di una colonna di datagrid per cui il codice sopra è all'interno dell'evento ITEMCREATED. questo bottone al click deve trasferire il testo contenuto nell'input precedente in una textarea e per fare questo la funzione deve conoscere l'id dell'elemento HTML.

    NB:
    il problema che mi ha lasciato un po' basito prima di leggere questo post è che quando richiamo il ClientID (GET), .NET mi sputtana l'id univoco mantenendo lo stesso in ogni riga del datagrid...

    spero di essermi spiegato...
    ciao
    Massimiliano
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

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.