? - AutoEventWireup="true" - What is this really doing?


G

Guy Lafleur

I have a user control that builds a treeview dynamically in the Page_Load event. Also, I have the AutoEventWireup property set to true (i.e., <%@ Control AutoEventWireup="true" %>). Then, when I 'run' the application, I get two treeviews instead of one. I'm thinking this is because of the AutoEventWireup property being set to true.

1. Am I correct? If so, if the AutoEventWireup property is true, why does it create two treeview in my user control?

2. If I set the AutoEventWireup property to false, what issues/problems will this cause (if any)? And, what else do I need to do to make sure my user control works correctly?

Thanks in advance for your help.
 
Ad

Advertisements

C

Cowboy \(Gregory A. Beamer\) [MVP]

From ASP.NET Server Control Event Model (help file)
If you do set AutoEventWireup to true, Visual Studio will generate code to bind the events and the page framework will automatically call events based on their names. This can result in the same event code being called twice when the page runs. As a consequence, you should always leave AutoEventWireup set to false when working in Visual Studio.



--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA

***************************************************************
Think outside the box!
***************************************************************
I have a user control that builds a treeview dynamically in the Page_Load event. Also, I have the AutoEventWireup property set to true (i.e., <%@ Control AutoEventWireup="true" %>). Then, when I 'run' the application, I get two treeviews instead of one. I'm thinking this is because of the AutoEventWireup property being set to true.

1. Am I correct? If so, if the AutoEventWireup property is true, why does it create two treeview in my user control?

2. If I set the AutoEventWireup property to false, what issues/problems will this cause (if any)? And, what else do I need to do to make sure my user control works correctly?

Thanks in advance for your help.
 
T

Teemu Keiski

This is straight from docs:

"
The ASP.NET page framework also supports an automatic way to associate page
events and methods. If the AutoEventWireup attribute of the Page directive
is set to true (or if it is missing, since by default it is true), the page
framework calls page events automatically, specifically the Page_Init and
Page_Load methods. In that case, no explicit Handles clause or delegate is
needed.
The disadvantage of the AutoEventWireup attribute is that it requires that
the page event handlers have specific, predictable names. This limits your
flexibility in how you name your event handlers.
"

So to speak, if you have AutoEventWiureUp="true" as well as manually
attached Page_Load method to handle Load event, it gets called twice
(actually handling the event and second via the automatic event wiring
basedf on event name). If you create yout TreeView dynamically in Page_Load
and method gets called twice, result is as you described.
--
Teemu Keiski
MCP, Microsoft MVP (ASP.NET), AspInsiders member
ASP.NET Forum Moderator, AspAlliance Columnist
http://blogs.aspadvice.com/joteke


I have a user control that builds a treeview dynamically in the Page_Load
event. Also, I have the AutoEventWireup property set to true (i.e., <%@
Control AutoEventWireup="true" %>). Then, when I 'run' the application, I
get two treeviews instead of one. I'm thinking this is because of the
AutoEventWireup property being set to true.

1. Am I correct? If so, if the AutoEventWireup property is true, why does
it create two treeview in my user control?

2. If I set the AutoEventWireup property to false, what issues/problems
will this cause (if any)? And, what else do I need to do to make sure my
user control works correctly?

Thanks in advance for your help.
 
Ad

Advertisements


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top