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

    Il problema delle textbox e readonly=true

    Ho una pagina A.aspx con:

    codice:
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>A</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="tb1" runat="server" readonly="true"></asp:TextBox>
            <asp:Button ID="bt1" runat="server" Text="Calendario" />
        </div>
        </form>
    </body>
    </html>
    
    
    
    
        Protected Sub bt1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bt1.Click
            JavaScript.Popup(Me, "popup.aspx", 400, 300) ' Lancia una popup
        End Sub

    La popup:
    codice:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Popup</title>
        <script type="text/javascript">
         function chiudiPop()
         {
           opener.form1.tb1.value = "31/12/2008";
           window.close();
         }
        </script>
    </head>
    
    <body>
        <form id="form1" runat="server">
        <div>
            <input type="button" onclick="chiudiPop();" value="Chiudi finestra" />
        </div>
        </form>
    </body>
    </html>
    Alla prima esecuzione fa quello che deve fare. Alla SECONDA pressione del tasto per lanciare la popup, mi pulisce la textbox.

    Questione di sicurezza ? Con JavaScript non posso aggiornare il valore di una TexbBox se è impostata la sua proprietà ReadOnly a True ? :master:

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Aggiungo: la Microsoft consiglia di settare programmaticamente (da codice vb o c#) la proprietà, ma ho provato ed al postback me la pulisce lo stesso

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    Aggiungo: la Microsoft consiglia di settare programmaticamente (da codice vb o c#) la proprietà, ma ho provato ed al postback me la pulisce lo stesso
    e dammi il tempo di provare!
    Pietro

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    così va

    pagina
    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="a.aspx.vb" Inherits="prove_a" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    
    function Button1_onclick() 
    {
        window.open("popup.aspx","popup","width=500px, height=500px,top=100px, left=100px");
    }
    
    // ]]>
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="tb1" runat="server" readonly="true"></asp:TextBox>
            
            <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
        </div>
        </form>
    </body>
    </html>
    popup
    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="popup.aspx.vb" Inherits="prove_popup" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    
    <script language="javascript" type="text/javascript">
    // <!CDATA[
    function chiudiPop()
    {
        if(opener)
        {
            opener.document.getElementById("tb1").value = "31/12/2008";
            window.close();
        }
        
        
    }
    
    
    // ]]>
    </script>
    
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input type="button" onclick="chiudiPop();" value="Chiudi finestra" />
        </div>
        </form>
    </body>
    </html>

    come hai scritto tu non va Da qualche tempo i browser non aprono più le popup in automatico
    Pietro

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    codice:
            <asp:TextBox ID="tb1" runat="server" readonly="true"></asp:TextBox>
            <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
            
            <asp:Button ID="bt" runat="server" Text="Postback!" />
    Si, rimanendo sul client funziona. Ma facendo un altro giro sul server no.
    In altre parole, QUALSIASI comando sulla pagina che effettui un postback crea il problema.

    Prova ad aggiungere il bottone in terza posizione ed a fare un postback ... Perchè pulisce la text ?

    ps: il blocco popup ce l'ho disattivato, per questo me la apre

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ps: il blocco popup ce l'ho disattivato, per questo me la apre
    così non vale


    codice:
        Protected Sub bt1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bt1.Click
            'JavaScript.Popup(Me, "popup.aspx", 400, 300) ' Lancia una popup
            Me.ClientScript.RegisterStartupScript(Me.GetType, "popup", "window.open(""popup.aspx"",""popup"",""width=500px, height=500px,top=100px, left=100px"");", True)
            Me.tb1.Text = l.RequestParams("tb1")
        End Sub
    sostituisci RequestParams con requestform....
    Pietro

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    cos'è "l" ?

    E comunque, tutti i workaround che vuoi, ma non dovrebbe fare quello che fa

    Non sto cercando la soluzione, ma di capire il perchè hanno fatto una scelta di sicurezza del genere in 2.0 ...

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    Javascrtipt.Popup cosa fa?
    quando viene lanciata l' apertura del popup?
    lo dovresti fare all' onload della pagina.....
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da stefanomnn
    Javascrtipt.Popup cosa fa?
    quando viene lanciata l' apertura del popup?
    lo dovresti fare all' onload della pagina.....
    codice:
    Public Class JavaScript
        Public Shared Sub Popup(ByVal Pagina As System.Web.UI.Page, ByVal Link As String, Optional ByVal larghezza As Integer = 800, Optional ByVal altezza As Integer = 600)
            Dim js As String = "window.open('" & Link & "','popup','width=" & larghezza & ",height=" & altezza & "');"
            If (Not Pagina.ClientScript.IsStartupScriptRegistered("clientscript_popup")) Then
                Pagina.ClientScript.RegisterStartupScript(Pagina.GetType, "clientscript_popup", js, True)
            End If
        End Sub
    End Class
    La popup viene lanciata su richiesta, alla pressione del bottone.
    Ma non sta lì il problema..

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Se ho un TextBox e non voglio che mantenga lo stato, non serve che disabiliti il viewstate. Bisogna sempre "pulirlo" da codice.

    Se ho un TextBox a solo lettura, le modifiche fatte da client non vengono mantenute.

    Allo stesso modo se ho un DropDown e modifico gli elementi da client, le modifiche non vengono tenute in conto nel server.

    Così è stato progettato e così ce lo prendiamo


    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.