Connecting Tech Pros Worldwide Help | Site Map

PostBack twice for a button click?

pedestrian via DotNetMonster.com
Guest
 
Posts: n/a
#1: Oct 1 '06
I have a simple VB ASP.NET 2.0 page with a Button and a Label.
The Label text is "0". For each click of the button (btnAdd), it should
increment the Label text by 1.

The code:

Protected Sub btnAdd_Click(...) Handles btnAdd.Click
Trace.Warn("Before add: " & lblCounter.Text)
lblCounter.Text = (Int32.Parse(lblCounter.Text) + 1).ToString
Trace.Warn("After add: " & lblCounter.Text)
End Sub

However, each time I click the button, the label always increase
by 2 instead of the expected 1. What's the problem area?

I tried to debug using Trace.
I get the following result from the trace:

Begin Raise PostBackEvent
Before add: 0
After add: 1
Before add: 1
After add: 2
End Raise PostBackEvent

Is this signifies PostBack event is being run twice per button click?
How to solve it?

Thanks for your assistance.

--
Regards,
Pedestrian, Penang.

Message posted via http://www.dotnetmonster.com

Steven Nagy
Guest
 
Posts: n/a
#2: Oct 1 '06

re: PostBack twice for a button click?


Hi can you post all code except for designer generated code?
There's no way that the method should be executing twice.

pedestrian via DotNetMonster.com
Guest
 
Posts: n/a
#3: Oct 2 '06

re: PostBack twice for a button click?


(Default.aspx)
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb"
Inherits="_Default" Trace="true"%>
<!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>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnAdd" Text="Add" OnClick="btnAdd_Click"
runat="server" />
<asp:Label ID="lblCounter" Text="0" runat="server" />
</div>
</form>
</body>
</html>

(Default.aspx.vb)
Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As System.
EventArgs) Handles btnAdd.Click
Trace.Warn("Before add: " & lblCounter.Text)
lblCounter.Text = (Int32.Parse(lblCounter.Text) + 1).ToString
Trace.Warn("After add: " & lblCounter.Text)
End Sub
End Class

--
Regards,
Pedestrian, Penang.

Message posted via http://www.dotnetmonster.com

jjoy
Guest
 
Posts: n/a
#4: Oct 2 '06

re: PostBack twice for a button click?


Sounds like you might have an event handler in the designer file in
addition to the specification in the label tag.

pedestrian via DotNetMonster.com
Guest
 
Posts: n/a
#5: Oct 3 '06

re: PostBack twice for a button click?


Thanks. I shall check it up.

--
Regards,
Pedestrian, Penang.

Message posted via DotNetMonster.com
http://www.dotnetmonster.com/Uwe/For...p-net/200610/1

Damien
Guest
 
Posts: n/a
#6: Oct 3 '06

re: PostBack twice for a button click?


pedestrian via DotNetMonster.com wrote:
Quote:
(Default.aspx)
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb"
Inherits="_Default" Trace="true"%>
<!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>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnAdd" Text="Add" OnClick="btnAdd_Click"
runat="server" />
<asp:Label ID="lblCounter" Text="0" runat="server" />
</div>
</form>
</body>
</html>
>
(Default.aspx.vb)
Partial Class _Default
Inherits System.Web.UI.Page
>
Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As System.
EventArgs) Handles btnAdd.Click
Trace.Warn("Before add: " & lblCounter.Text)
lblCounter.Text = (Int32.Parse(lblCounter.Text) + 1).ToString
Trace.Warn("After add: " & lblCounter.Text)
End Sub
End Class
>
--
Regards,
Pedestrian, Penang.
AutoEventWireup="true" - Find all of the <control name>_<event name>
methods add attach them to the <control name>.<event nameevent

Handles <control name>.<event name- Attach this method to the
<control name>.<event nameevent.

So your btnAdd_Click method is being attached to the btnAdd.Click event
twice, and is hence being called twice. My normal advice would be to
set AutoEventWireup to false.

Damien

pedestrian via DotNetMonster.com
Guest
 
Posts: n/a
#7: Oct 6 '06

re: PostBack twice for a button click?


Thanks for valuable answer, Damien.

Damien wrote:
Quote:
Quote:
>(Default.aspx)
><%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb"
>[quoted text clipped - 31 lines]
Quote:
>Regards,
>Pedestrian, Penang.
>
>AutoEventWireup="true" - Find all of the <control name>_<event name>
>methods add attach them to the <control name>.<event nameevent
>
>Handles <control name>.<event name- Attach this method to the
><control name>.<event nameevent.
>
>So your btnAdd_Click method is being attached to the btnAdd.Click event
>twice, and is hence being called twice. My normal advice would be to
>set AutoEventWireup to false.
>
>Damien
--
Regards,
Pedestrian, Penang.

Message posted via DotNetMonster.com
http://www.dotnetmonster.com/Uwe/For...p-net/200610/1

Closed Thread