Jump to content
rmlm

Escrever msg em label e apaga-la passado algum tempo

Recommended Posts

rmlm

Boas

Eu tenho esta funçao de delay:

    //////////////////FUNÇÃO DE DELAY///////////////////
    static void Delay(int seconds)
    {
        TimeSpan diff = new TimeSpan(0, 0, seconds);
        DateTime end = DateTime.Now.Add(diff);
        while (DateTime.Now < end)
        {
            ;
        }
    }
    ////////////////////////////////////////////////////

E fiz isto:

aviso.Text = "Inserido com sucesso!";
Delay(3);
aviso.Text = "";

Ora o que eu queria que acontecesse era: imprimia a 1º mensagem, esperava 3 segundos e imprimia a 2º mensagem que nao é nada logo era como se apagasse.

Mas o que está acontecer é: Não imprime a 1º mensagem, espera os 3 segundos e imprime a segunda mensagem.

Enquanto escrevo este post lembrei-me agora que se ele deve imprimir a 1º mensagem so que entra logo no delay, e este apaga a mensagem... Será?

Alguem tem uma solução para eu fazer o que prentendo?

Desde já obrigado!

Share this post


Link to post
Share on other sites
kopdicht

Boas...

Eu estou com o mesmo problema que o rmlm.  :wallbash:

Um exemplo daria bastante jeito...:cheesygrin:

Share this post


Link to post
Share on other sites
Rechousa

Aqui vai um exemplo que usa jQuery:

Para estar bem, os estilos deveriam estar num ficheiro CSS e o script num ficheiro JS.

No caso de usares uma MasterPage, recomendo que a "<div class="message"></div>" fique na MasterPage. Depois é só usar a função ShowMessage é tá feito :cheesygrin:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="frmDefault" %>
<!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 src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
	function ShowMessage(text) {
		$("div.message").html(text).css('display', 'block');
		setTimeout(HideMessage, 3000);
	}
	function HideMessage() {
		$("div.message").html('').css('display', 'none');
	}
</script>
<style type="text/css">
div.message
{
	display: none;
	margin: .5em;
	padding: .8em;
	border: 2px solid #880000;
	width: 20em;
	font-weight: normal;
	font-family: Verdana;
	color: Black;
	background-color: White;
	position: absolute;
	top: 0em;
	right: 0em;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="message"></div>
Aqui fica o resto da página...
</form>
</body>
</html>

using System;
using System.Web.UI;

public partial class frmDefault : Page
{
protected void Page_Load(object sender, EventArgs e)
{
	string script = "ShowMessage('Registo inserido com sucesso!');";
	ClientScript.RegisterStartupScript(this.GetType(), "ShowMessage", script, true);
}
}

Espero ter ajudado.


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.