46 messaggi dal 11 novembre 2002
Ciao a tutti.
Sto provando ad imparare qualcosa il JavaScript ed ho impostato il seguente comando con l'obiettivo di aggiornare una label aggiungendo 1 ad ogni UpLoad
L'upload dovrebbe essere eseguita ogni secondo per aggiornare il contatore (label)

<script language="javascript">
if (aa==1) {
ID=window.setTimeout("Update1();",1000);
public function Update1() {document.Form1.submit();}
}
</script>

Poi ho aggiunto il seguente codice

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Response.Write("<script language=javascript>aa=1</script>")
Response.Write("<script language=javascript>window.setTimeout(Update();,1000)</script>")

End Sub

Il mio desiderio è che una volta pigiato Button1 il contatore partisse in automatico, ma non lo fa !??!!!

Qualcuno mi da qualche idea?

Ciao a tutti e grazie.
189 messaggi dal 28 maggio 2007
Ciao,

Potresti creare un metodo Javascript che esegue il tuo codice, ad esempio:

<script language="javascript">
function PROVA()
{
window.setTimeout("Update();",1000);
}
</script>


Dopo, invece di usare l'evento Click, usa l'evento OnClientClick, chiamando il metodo PROVA().


Saluti

Andrea R.
46 messaggi dal 11 novembre 2002
Ho provato ad eseguire le tue istruzioni:

Code behind:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

If Not IsPostBack Then
lblCnt1.Style("text-align") = "right"
End If

lblCnt1.Text = Val(lblCnt1.Text) + 1

Button1.Attributes.Add("onclientclick", "Prova()")

End Sub

Html:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm3.aspx.vb" Inherits="zProva1.WebForm3"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm3</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<script language="javascript">

//ID=window.setTimeout("Prova();",1000);

public function Update1() {document.Form1.submit();}

public function Prova() { window.setTimeout("Update1();",1000); }

</script>

</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:label id="lblCnt1" style="Z-INDEX: 101; LEFT: 320px; POSITION: absolute; TOP: 256px" runat="server"
Font-Bold="True" Font-Size="XX-Large" BorderStyle="Dashed" Height="64px" Width="320px">0</asp:label>
<asp:button id="Button1" style="Z-INDEX: 102; LEFT: 744px; POSITION: absolute; TOP: 40px" runat="server"
Height="56px" Width="160px" Text="Button"></asp:button>
</form>
</body>
</HTML>

ma il contatore va avanti solo ad ogni click sul button.

Ciao.
Paolo.
189 messaggi dal 28 maggio 2007
Ciao,
ho capito cosa vuoi fare, però così non va bene.

1) Quando fai un click sul pulsante, il Button causa un PostBack. Quindi anche se il metodo Prova() viene chiamato, il SetTimeout di 1 secondo non occorrerà mai, perchè dopo il PostBack la tua pagina viene ricaricata (insieme al codice JavaScript) azzerando il SetTimeout.

2) Se vuoi fare un loop JavaScript non puoi permettere alla pagina de fare il PostBack. Tranne se fai un loop con l'event ONLOAD, ad esempio: <body onload="prova()">, ma in questo caso non avrai bisogno del Button. Siccome stai facendo soltanto un test, prova anche questa soluzione.

Saluti

Andrea R.
3.939 messaggi dal 28 gennaio 2003
Perdonami la franchezza, ma penso che per provare ad imparare javascript, sia un modo sbagliato per cominciare. Per fare qualche prova basta una pagina html, che è il campo di azione di javascript.
Oltretutto, quello che chiedi è semplicemente assurdo.

Solo a scopo didattico vedi se può servire questo 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">

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Pagina senza titolo</title>

    <script language="javascript" type="text/javascript">
// <!CDATA[
window.onload = window_onload;
function window_onload()
{
    window.setTimeout(aggiorna_label, 1000);
}
function aggiorna_label()
{
    var label = document.getElementById("<%=Me.Label1.ClientID %>");
    var n = parseInt(label.innerHTML);
    label.innerHTML = ++n;
    window.setTimeout(aggiorna_label, 1000);
}

// ]]>
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="0"></asp:Label>
    </div>
    </form>
</body>
</html>
46 messaggi dal 11 novembre 2002
Vi ringrazio dei vostri prezioni consigli.
Scusa Pietro per l'ignoranza, da qualche anno programmo in ASP.NET e sto provando ad evolvermi.
Leggendo un libro di JavaScript stavo cercando di mettere in pratica qualche istruzione in ASP.NET.
Ho provato a prendere il tuo esempio e provarlo: come posso lanciarlo?
Ho provato a copiarlo in un documento Blocco Note rinominando l'estensione in HTML, ma non mi fa vedere nulla.
Ho provato ad aprire in un progetto un documento HTML e copiarci il contenuto, ma mi trasforma il codice in istruzioni incomprensibili.

Ciao e grazie.
Paolo.
3.939 messaggi dal 28 gennaio 2003
quella è una pagina aspx scusa ma sto fuggendo. Se posso rispondo meglio di sera. Ciao
3.939 messaggi dal 28 gennaio 2003
allora riprendo. Prima di tutto non ci si deve scusare di niente perchè siamo qui per darci una mano l'uno con l'altro.

Tornando a noi, quella pagina è una pagina aspx. L'html prodotto (questa volta copialo con estensione htm) è:
<!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 id="Head1"><title>
  Pagina senza titolo
</title>

    <script language="javascript" type="text/javascript"> 
// <!CDATA[ 
window.onload = window_onload; 
function window_onload() 
{ 
    window.setTimeout(aggiorna_label, 1000); 
} 
function aggiorna_label() 
{ 
    var label = document.getElementById("Label1"); 
    var n = parseInt(label.innerHTML); 
    label.innerHTML = ++n; 
    window.setTimeout(aggiorna_label, 1000); 
} 

// ]]> 
    </script>

</head>
<body>
    <form method="post" action="a.aspx" id="form1">
        <div>
            <span id="Label1">0</span>
        </div>
    </form>
</body>
</html>



come vedi, l'asp:label, viene reso col tag <span

var label = document.getElementById("Label1"); ==> recupera l'oggetto di id Label1

var n = parseInt(label.innerHTML); ==> recupero il contenuto dello <span e lo trasformo in intero

label.innerHTML = ++n; ==> incremento di 1 il contatore

window.setTimeout(aggiorna_label, 1000); ==> richiamo questa funzione ogni secondo

ps. Il collegamento con asp.net è doveroso ma credo bisogni imparare prima le basi con qualcosa di più semplice. Ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.