J'ai une variable appelée "Totaltime" dans mon programme. J'affecte la variable (en secondes) comme Totaltime = 3600. Maintenant je veux réduire le temps de 1 sec pour chaque événement de tic et montrer le temps réducteur dans le contrôle d'étiquette ou de litera. Peut n'importe qui dites le codage de C# ASP.NET pour implémenter ce?Comment réduire seconde par seconde la durée totale de C# asp.net?
Répondre
Cela n'est pas possible dans le code côté serveur (ASP.Net/C#). Vous avez besoin d'un code côté client (javascript) pour ce faire
Même en dépit du fait que cette tâche ne peut pas être fait uniquement avec le code côté serveur, vous pouvez le faire utilisera le client suivant et le code serveur:
Dans votre fichier .aspx, mettez le javascript suivant dans la tête < > partie de la page:
<script type="text/javascript">
var timer = 3600, timeCont, t, timerOn = 0, timePanel
function countTimer() {
timeCont.value = timer;
timePanel.innerHTML = hms(timer);
timer--;
t = setTimeout("countTimer()", 1000);
}
function playTimer(obj) {
if (timeCont == null || timeCont == "undefined") timeCont = document.getElementById("timerval");
if (timePanel == null || timePanel == "undefined") timePanel = document.getElementById("timepanel");
if (!timerOn) {
timerOn = 1;
countTimer();
obj.value = timerLabel[1];
} else {
timerOn = 0;
clearTimeout(t);
obj.value = timerLabel[0];
}
}
function hms(secs) {
time = [0, 0, secs];
for (var i = 2; i > 0; i--) {
time[i - 1] = Math.floor(time[i]/60);
time[i] = time[i] % 60;
if (time[i] < 10) time[i] = '0' + time[i];
};
return time.join(':');
}
function autoStartTimer() {
playTimer(this);
}
window.onload = autoStartTimer;
</script>
Ensuite, mettre les contrôles HTML suivants dans le corps < > de votre pa ge:
<asp:Literal ID="litTimerLabels" runat="server"></asp:Literal>
<input type="hidden" name="timerval" id="timerval" value=""/>
<div id="timepanel" style="font-weight:bold;font-size:16px;float:left;padding:2px 20px 0 0;"></div>
<asp:Button ID="btnDoStuff" runat="server" Text="Get number of remaining seconds on server side" OnClick="btnDoStuff_Click" />
La dernière étape serait d'ajouter des fonctions dans les .aspx.cs de votre page pour gérer le temps restant sur backend:
// Get elapsed time in seconds after postback has occured
protected void btnDoStuff_Click(object sender, EventArgs e)
{
int secondsLeft = GetSecondsLeft();
}
private int GetSecondsLeft()
{
int formSecondsLeft = 0;
if (Request.Form["timerval"] != null &&
int.TryParse(Request.Form["timerval"], out formSecondsLeft))
{
// Keep in mind, that this can be a negative number if more than 3600 seconds elapsed!
return formSecondsLeft;
}
else
{
return 0;
}
}
Cela devrait être tout ce dont vous avez besoin. Amusez-vous à coder!
+1 Pour le faire côté client – Kimtho6
Vous pouvez ajouter un UpdatePanel comme ceci:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Timer runat="server" id="UpdateTimer" interval="5000" ontick="UpdateTimer_Tick" />
<asp:UpdatePanel runat="server" id="TimedPanel" updatemode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" />
</Triggers>
<ContentTemplate>
<asp:Label runat="server" id="DateStampLabel" />
</ContentTemplate>
</asp:UpdatePanel>
et codebehind
protected void UpdateTimer_Tick(object sender, EventArgs e)
{
DateStampLabel.Text = DateTime.Now.ToString();
}
Bon point Kim, mais cela fera un aller-retour partiel pour chaque intervalle donc dans ce cas chaque seconde qui peut être ou ne pas être un problème. Ma solution n'est peut-être pas aussi bonne que la vôtre, mais elle fait le travail et elle diminue le compteur du côté client sans faire d'allers-retours inutiles. – Skorpioh
Vous venez de souligner qu'il est possible de le faire côté serveur – Kimtho6
- 1. Comment profiler les méthodes C# par seconde?
- 2. Obtenir des requêtes basses par seconde (8-15 par seconde)
- 3. Expression régulière: Commencer par la seconde
- 4. Comment écrire un PerformanceCounter "événements par seconde"?
- 5. Calcul d'images par seconde dans un jeu
- 6. Amazon SDB - PUTS par seconde limite expliquée?
- 7. Créer une seconde fenêtre
- 8. Java milli seconde précision
- 9. Comment sauter X seconde avec axWindowsMediaPlayer en C#
- 10. Comment appeler une méthode automatiquement 20 fois par seconde?
- 11. Comment détecter les ticks d'un GIF animé par seconde?
- 12. Trier par dans mysql en utilisant la seconde table
- 13. Obtenir la dernière seconde du jour
- 14. seconde $ (document) événement .ready jQuery
- 15. Obtenir Ticks par seconde et convertir en valeur de chaîne?
- 16. Empêcher l'ouverture d'une seconde instance
- 17. MPMoviePlayerController lire la vidéo seconde fois
- 18. Linq: Comment charger une seconde table directement?
- 19. Comment sélectionner LI sauf première et seconde?
- 20. Pompage de messages multithread sans seconde forme
- 21. GAE: Combien de tâches par seconde est suffisant?
- 22. Erreur de complication d'une seconde bibliothèque de vie C++
- 23. comment configurer UIProgressview pendant une seconde?
- 24. est quartz.net destiné à supporter les déclencheurs de moins d'une seconde de durée?
- 25. Combien de transactions par seconde Postgresql prend en charge
- 26. Calcul de durée totale de MySQL
- 27. Combien d'objets LINQ peut-on créer par seconde?
- 28. Ouvrir une seconde fenêtre dans PyQt
- 29. Deux tables dans MySQL: sélectionner d'abord, trier par seconde
- 30. Augmentation du nombre d'images par seconde avec flash?
Javascript, pas une technologie côté serveur. – leppie
'Totaltime -;' ou quelle est votre question? –
http://refactormycode.com/codes/302-countdown-timer-minutes-seconds-javascript#refactor_74241 –