Comment puis-je lancer un compte à rebours de 10 minutes et ensuite désactiver le bouton?
J'ai pris l'aide de :http://forum.codecall.net/topic/65434-c-working-with-timers/ (dans un compteur est décrémenté utilisé, mais il ne fonctionne pas dans mon application)
J'ai un certain champ de texte et deux boutons: présenter et mettre à jour.
J'ai mis en place un timer à partir de la barre d'outils à bouton de mise à jour.
Je voulais que ce minuteur de fonctionner pendant 10 minutes, puis désactivez le bouton mettre à jour. Mais, actuellement, il est en cours d'exécution pour seulement 2 minutes.
Code De Boutons:
<asp:Button ID="Btnsave" runat="server" CssClass="bt3dbuttons"
onclick="Btnsave_Click" OnClientClick="return confirm('Data Submitted')"
Text="Submit" Width="77px" />
<asp:Timer ID="Timer2" runat="server" ontick="Timer2_Tick">
</asp:Timer>
<asp:Button ID="Butnupdate" runat="server" CssClass="btupbuttons"
onclick="Btnupdate_Click" Text="Update" visible="false" Width="85px" />
Voici le code de la minuterie:
private System.Timers.Timer aTimer = new System.Timers.Timer(600000)
{ AutoReset = false };
protected void Timer2_Tick(object sender, EventArgs e)
{
aTimer = new System.Timers.Timer(600000);
aTimer.Interval = 600000;
double counter = aTimer.Interval;
counter++;
if (counter >= 600000)
{
Butnupdate.Enabled = false;
MessageBox.Show("Time Up!");
}
}
Code pour le Bouton de mise à Jour:
protected void Btnupdate_Click(object sender, EventArgs e)
{
string id = Id.Text.Trim();
string name = Name.Text;
string project = Project.Text;
string result = Total.Text;
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["CM_Connection"].ConnectionString))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
try
{
//lets check that the user typed the first number
if (Viva.Text.Length > 1)
{
VivaLabel.Text = "Please enter a valid number to add.";
return;
}
//lets check that the user typed the second number
else if (Presentation.Text.Length > 1)
{
PresentationLabel.Text = "Please enter a valid number to add.";
return;
}
else if (Confidence.Text.Length > 1)
{
ConfidenceLabel.Text = "Please enter a valid number to add.";
return;
}
else if (System.Text.Length > 1)
{
SystemLabel.Text = "Please enter a valid number to add.";
return;
}
//Now we have valid inputs
//Lets put them into integer values
int number1 = int.Parse(Viva.Text);
int number2 = int.Parse(Presentation.Text);
int number3 = int.Parse(Confidence.Text);
int number4 = int.Parse(System.Text);
//Now lets add the numbers
int total = number1 + number2 + number3 + number4;
//lets place it into the TextBox3
Total.Text = total.ToString();
// cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = @"UPDATE Result SET Name = @name, Project = @project, Result = @result WHERE ID = @id";
con.Open();
cmd.Parameters.AddWithValue("@id", Id.Text.ToString());
cmd.Parameters.AddWithValue("@name ", Name.Text.ToString());
cmd.Parameters.AddWithValue("@project ", Project.Text.ToString());
cmd.Parameters.AddWithValue("@result ", Total.Text.ToString());
cmd.ExecuteNonQuery();
}
catch (Exception ex1)
{
//Report error to user in the bottom Label
MessageBox.Show(ex1.Message);
}
}
}
- Où avez-vous attribuer le gestionnaire d'événements pour votre minuterie? Ce qui déclenche
Timer2_Tick
? Je pense que vous avez besoin de nous montrer un peu plus de code. - Ce code n'a aucun sens logique pour moi
- J'aimerais être d'accord avec @Jonesy sur celui-ci. Vous pouvez sauvegarder une étape et dites-nous ce que vous essayez de faire? Il semble que vous essayez d'avoir un persistante
System.Timers.Timer
en cours d'exécution sur le serveur Web, mais c'est difficile à dire. - Mischel sa ma première fois de travailler avec minuterie donc je n'ai pas la moindre idée. Je ne veux pas une persistance de la minuterie, mais ouais, il semble qu'elle obtient persistante comment les éviter
- MessageBox.Afficher sur une application web? ai-je manqué quelque chose, êtes-vous d'hébergement de la page HTML dans une Application Windows?
- ses une application web. Si ce n'est pas la bonne façon, alors comment faire pour afficher les messages d'alertes/notifications?
- Vous pouvez utiliser un script pour afficher un message d'alerte lorsque la page de publication, ou montrent déjà un élément masqué....il y a donc plusieurs façons d'afficher un message sur une page web, C'est vraiment une autre question....
Vous devez vous connecter pour publier un commentaire.
Utiliser ce code comme un guide
Exemple tiré de
http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx
Définir l'Intervalle de Propriété de l'asp:Minuteur de cette publication de la page et d'appeler la ontick gestionnaire
http://msdn.microsoft.com/en-us/library/system.web.ui.timer.interval.aspx
Je ne suis pas sûr de ce que vous essayez de faire avec le
System.Timers.Timer
sur le serveur de code, il ne pourra pas se utilisé, sauf si vous le traitement de la page prend un extraordinaire longtemps.Votre minuterie peut être nettoyée si c'est une méthode longue, au lieu de dans le cadre de la classe, je ne peux pas le dire par le code posté.
Lire la Minuterie.Intervalle De Propriété de la documentation, qui a aussi un exemple de comment mettre une minuterie.
Selon le Système.Les minuteries.Minuterie de documentation de classe, il déclenche un événement une fois le temps défini est écoulé, de manière asynchrone.
Le programme d'installation de code devrait ressembler à ceci:
Et l'événement lui-même comme ceci:
Espère que cela fonctionne pour vous.
Problème a été résolu par le code suivant:
Créer le minuteur ( par défaut peuvent être utilisés de la boîte à outils)
réglez le minuteur d'intervalle propriété
Pour référence, voir: http://msdn.microsoft.com/en-us/library/system.web.ui.timer.interval.aspx
Créer le gestionnaire d'événement pour la minuterie :
utiliser les éléments suivants dans le bouton sur lequel vous voulez que votre minuterie pour démarrer:
Si vous souhaitez afficher l'heure système actuelle ou à l'heure actuelle l'utilisation
Je l'ai déclaré dans l'étiquette et comment le faire, et au-dessus, jetez un oeil ici:
http://msdn.microsoft.com/en-us/library/dd492144.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
Ici nous allons d'une minuterie pour désactiver le bouton au bout de 10 minutes 🙂
Espère que cela aide quelqu'un en plus 🙂