Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    input button e call back a runtime

    Ciao ragazzi,

    debbo inserire un pulsante nella pagina, un classico button html, e gestire l'evento click. Il tutto a runtime

    il codice che uso per iniettare il pulsante è il seguente

    codice:
    "<td><input type='button'  onclick=\"javascript:__doPostBack('btnAsp','a');\" value='elimina'  type='Button' id=\"btn_" + dr[3] + "\" / ></td>";

    sempre nel file cs ho
    codice:
     private void btnAsp_Click(object sender, System.EventArgs e)
        {
            Response.Write("You Clicked on " + Request.Form["__EVENTARGUMENT"].ToString());
            
        }
    nella pagina aspx ho il seguente codice

    codice:
        <asp:Literal ID="ltr" runat="server"></asp:Literal>
    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
     
        <script type="text/javascript">
    //<![CDATA[
            var theForm = document.forms['aspnetForm'];
            
            if (!theForm) {
                theForm = document.form1;
            }
            function __doPostBack(eventTarget, eventArgument) {
                alert("jkljlkj");
                if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
                    theForm.__EVENTTARGET.value = eventTarget;
                    theForm.__EVENTARGUMENT.value = eventArgument;
                    theForm.submit();
                }
            }
    //]]>
    </script>
    il postback avviene ma in modo non preciso.

    su tutti non riesco a visualizzare il response.write del metodo btnasp

    Cosa c'è che non va?

    grazie
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Stai facendo cio che asp.net fa benissimo gia di suo con il livello di astrazione che mette a disposizione.

    Il pulsante dinamicamente si crea cosi.

    codice:
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    Button btn = new Button();
                    btn.ID = "1";
                    btn.Text = "Cliccami";
    
                    Session["Bottone"] = btn;
                }
    
                Button bottone = (Session["Bottone"] as Button);
                bottone.Click += button_click;
                PH.Controls.Add(bottone);
            }
    
    protected void button_click(object sender, EventArgs e)
            {
                //Lbl.Text = "Ciao " + (sender as Button).ID;
    //oppure
                Response.Write("ciao " + (sender as Button).ID);
            }
    PH è un semplice placeholder mentre Lbl è una label entrambi dichiarati nel markup.

    poiche il pulsante l'ho creato dinamicamente e non è presente nel markup devo salvarlo in sessione altrimenti ai postback lo perdo. Non posso nemmeno attaccare l'evento click una tantum (dentro l'IF) ma lo devo fare ogni volta che recupero il pulsante dalla session e prima di aggiungerlo alla collection di controlli.
    Se scrivi nel response da un event handler lo fai prima che qualsiasi controllo abbia iniziato a scatenare il prerender e troverai cio che metti in response prima ancora del tag html nella pagina, va bene per debuggare altrimenti anche qui usa i controlli (sopra come vedi ho commentato l'istruzione che modifica la label invece che usare il response).

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    grazie per la risposta.

    c'è un problema

    devo inserire il tutto in un ciclo while che mi genera una tabella.
    non uso quella predefinita da asp net poichè non i valori non sono quelli che estraggo dal database ma sono elabtorati.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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