363,924 Members | 2595 Browsing Online
Community for Developers & IT Professionals
Bytes IT Community

PostBack twice for a button click?

pedestrian via DotNetMonster.com
P: n/a
pedestrian via DotNetMonster.com
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

Oct 1 '06 #1
Share this Question
Share on Google+
6 Replies


Steven Nagy
P: n/a
Steven Nagy
Hi can you post all code except for designer generated code?
There's no way that the method should be executing twice.

Oct 1 '06 #2

pedestrian via DotNetMonster.com
P: n/a
pedestrian via DotNetMonster.com
(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

Oct 2 '06 #3

jjoy
P: n/a
jjoy
Sounds like you might have an event handler in the designer file in
addition to the specification in the label tag.

Oct 2 '06 #4

pedestrian via DotNetMonster.com
P: n/a
pedestrian via DotNetMonster.com
Thanks. I shall check it up.

--
Regards,
Pedestrian, Penang.

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

Oct 3 '06 #5

Damien
P: n/a
Damien
pedestrian via DotNetMonster.com wrote:
(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

Oct 3 '06 #6

pedestrian via DotNetMonster.com
P: n/a
pedestrian via DotNetMonster.com
Thanks for valuable answer, Damien.

Damien wrote:
>(Default.aspx)
><%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb"
>[quoted text clipped - 31 lines]
>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

Oct 6 '06 #7

Post your reply

Help answer this question



Didn't find the answer to your ASP.NET question?

You can also browse similar questions: ASP.NET