webForumDet fria alternativet

Bug - btnEmail_Click exekveras vid Refresh?

.NET

4 svar · 244 visningar · startad av CokeLight

Medlem sedan juni 2000504 inlägg
Frågan#1

Hej, jag har en UC (abc1.ascx) som för tillfället innehåller 2 knappar. Problemet är att varje gång jag trycker "Refresh" så triggas min btnEmail_Click, inte allra första gången men har jag väl tryckt knappen en gång så väljer programmet, av en för mig okänd anledning, då att gå till btnEmail_Click istället för att att gå till Page_Load.. (iaf när jag sätter ut Breakpoints) .. så varje gång jag klickar Refresh skickas ett e-mail.. hur kan det bli så..??

private void Page_Load(object sender, System.EventArgs e)
{
	if(!Page.IsPostBack)
	{
		ucMailer = (UserControl)LoadControl("abc2.ascx");
		plhMailer.Controls.Add(ucMailer);
	}
}

private void btnEmail_Click(object sender, System.EventArgs e)
{
	mailer = new abcMailer();
             .....
	mailer.SendEmail("Hardcoded title", "abc", "adf@adf.com");
}

Jag har provat att sätta clickanropet i både InitializeComponent() med private o även sen istället i aspx sidan med protected men det blir likadant.. nån som har råkat ut för liknande eller..?

Medlem sedan dec. 19996 721 inlägg
#2

Om du klickar på knappen och sedan kör en refresh så kommer klicket att köras igen, eftersom du kör om postback:en då. Det är inget konstigt med det..

Medlem sedan juni 2000504 inlägg
#3

aha.. det ska va så.. hmm.. det är väl iofs inte så ofta folk sitter o trycker på Refresh.. kan man förhindra det om man vill eller..? men om det ska va så låter jag det va..

tack för svaret..

Medlem sedan sep. 2005673 inlägg
#4

Spara undan en bool någonstans som du sätter till true när din btnEmail_Click har körts en gång. Så lägger du en if-sats i btnEmail_Click som kollar mot den, är den true så stannar du bara funktionen.

private void btnEmail_Click(object sender, System.EventArgs e) {
  if(bool)
    return;
  
    din kod...
}
Medlem sedan juni 2000504 inlägg
#5

hej, okay, a precis.. låter helt okay lösning.. tack : )

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)