I have setup a public variable in the Master Page "code-behind-file". Now I
would like to set that value from the UserControl, but I can't seem to find a
way to do this. Does anyone have any ideas? I'm basically trying to set it up
so that I can keep the User infor (userid, ect) in the Masterpage so that
other pages can access it. Thanks for any ideas.
Michael 13 6199
Michael,
Do it with a private variable and public property.
Private _UserId As Int32
Public Property UserId() As Int32
Get
Return _UserId
End Get
Set (ByVal value As Int32)
_UserId = Value
End Set
End Property
'---And now here's the trick:
' On any page you want to access the property
' from in the HTML View just below the
' <@pagedelcaration put:
' <%@ MasterType VirtualPath="~/MasterPage.master" %> Like this:
<%@ Page Language="VB" MasterPageFile="~/MasterPage.master"
MaintainScrollPositionOnPostback="true" AutoEventWireup="false"
CodeFile="Auction.aspx.vb" Inherits="Auction" title="Auction" %>
<%@ MasterType VirtualPath="~/MasterPage.master" %>
The MasterType declaration pointing to the master file in question is what
let's you access properties and other public declarations in the master
page.
Regards,
--
S. Justin Gengo
Web Developer / Programmer
Free code library: http://www.aboutfortunate.com
"Out of chaos comes order."
Nietzsche
"Michael" <Mi*****@discussions.microsoft.com> wrote in message
news:71**********************************@microsof t.com... I have setup a public variable in the Master Page "code-behind-file". Now I would like to set that value from the UserControl, but I can't seem to find a way to do this. Does anyone have any ideas? I'm basically trying to set it up so that I can keep the User infor (userid, ect) in the Masterpage so that other pages can access it. Thanks for any ideas. Michael
On Fri, 31 Mar 2006 11:30:03 -0600, Michael
<Mi*****@discussions.microsoft.com> wrote: I have setup a public variable in the Master Page "code-behind-file". Now I would like to set that value from the UserControl, but I can't seem to find a way to do this. Does anyone have any ideas? I'm basically trying to set it up so that I can keep the User infor (userid, ect) in the Masterpage so that other pages can access it. Thanks for any ideas. Michael
The UserControl has a .Page property, from which you can get its MasterPage
ex:
this.Page.MasterPageFile
then cast that appropriately to the MasterPage type to access your
property.
--
Craig
Microsoft MVP - ASP/ASP.NET
Hi,
Thanks for the reply. I tried setting up a Public Property, just as you
suggested and I still can't get access to the Property in the Master Page
from the UserControl on that Master Page.
Page.Master.???? don't work
I've also tried wrapping Master Page, Usercontrol in the same namespace and
I got other errors (saw this suggestion in another message). Am I trying to
access the master in the wrong way? Or am I missing something. Thanks.
Michael
"S. Justin Gengo" wrote: Michael,
Do it with a private variable and public property.
Private _UserId As Int32
Public Property UserId() As Int32 Get Return _UserId End Get Set (ByVal value As Int32) _UserId = Value End Set End Property
'---And now here's the trick: ' On any page you want to access the property ' from in the HTML View just below the ' <@pagedelcaration put: ' <%@ MasterType VirtualPath="~/MasterPage.master" %> Like this: <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" MaintainScrollPositionOnPostback="true" AutoEventWireup="false" CodeFile="Auction.aspx.vb" Inherits="Auction" title="Auction" %>
<%@ MasterType VirtualPath="~/MasterPage.master" %>
The MasterType declaration pointing to the master file in question is what let's you access properties and other public declarations in the master page.
Regards,
-- S. Justin Gengo Web Developer / Programmer
Free code library: http://www.aboutfortunate.com
"Out of chaos comes order." Nietzsche
"Michael" <Mi*****@discussions.microsoft.com> wrote in message news:71**********************************@microsof t.com...I have setup a public variable in the Master Page "code-behind-file". Now I would like to set that value from the UserControl, but I can't seem to find a way to do this. Does anyone have any ideas? I'm basically trying to set it up so that I can keep the User infor (userid, ect) in the Masterpage so that other pages can access it. Thanks for any ideas. Michael
Hi Craig,
Thanks for the reply, I tried using
Dim ms as MasterPage = CType(Me.Page.MasterPageFile, MasterPage )
But I get a error trying to convert string to MasterPage. How do I do this
with the MasterPageFile property? Can you please give me a short example.
Thanks so much for the help.
Michael
P.S. Have you seen any article or books that discuss issues like this with
MasterPages?
"Craig Deelsnyder" wrote: On Fri, 31 Mar 2006 11:30:03 -0600, Michael <Mi*****@discussions.microsoft.com> wrote:
I have setup a public variable in the Master Page "code-behind-file". Now I would like to set that value from the UserControl, but I can't seem to find a way to do this. Does anyone have any ideas? I'm basically trying to set it up so that I can keep the User infor (userid, ect) in the Masterpage so that other pages can access it. Thanks for any ideas. Michael
The UserControl has a .Page property, from which you can get its MasterPage
ex: this.Page.MasterPageFile
then cast that appropriately to the MasterPage type to access your property.
-- Craig Microsoft MVP - ASP/ASP.NET
Michael,
I'm not positive how to do it from the usercontrol itself, but this may lead
you in the right direction. From the page that the usercontrol is on you
just use Master.[Property]
That's what the MasterType reference lets you do.
Regards,
--
S. Justin Gengo
Web Developer / Programmer
Free code library: http://www.aboutfortunate.com
"Out of chaos comes order."
Nietzsche
"Michael" <Mi*****@discussions.microsoft.com> wrote in message
news:7A**********************************@microsof t.com... Hi, Thanks for the reply. I tried setting up a Public Property, just as you suggested and I still can't get access to the Property in the Master Page from the UserControl on that Master Page. Page.Master.???? don't work I've also tried wrapping Master Page, Usercontrol in the same namespace and I got other errors (saw this suggestion in another message). Am I trying to access the master in the wrong way? Or am I missing something. Thanks. Michael
"S. Justin Gengo" wrote:
Michael,
Do it with a private variable and public property.
Private _UserId As Int32
Public Property UserId() As Int32 Get Return _UserId End Get Set (ByVal value As Int32) _UserId = Value End Set End Property
'---And now here's the trick: ' On any page you want to access the property ' from in the HTML View just below the ' <@pagedelcaration put: ' <%@ MasterType VirtualPath="~/MasterPage.master" %> Like this: <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" MaintainScrollPositionOnPostback="true" AutoEventWireup="false" CodeFile="Auction.aspx.vb" Inherits="Auction" title="Auction" %>
<%@ MasterType VirtualPath="~/MasterPage.master" %>
The MasterType declaration pointing to the master file in question is what let's you access properties and other public declarations in the master page.
Regards,
-- S. Justin Gengo Web Developer / Programmer
Free code library: http://www.aboutfortunate.com
"Out of chaos comes order." Nietzsche
"Michael" <Mi*****@discussions.microsoft.com> wrote in message news:71**********************************@microsof t.com... >I have setup a public variable in the Master Page "code-behind-file". >Now I > would like to set that value from the UserControl, but I can't seem to > find a > way to do this. Does anyone have any ideas? I'm basically trying to set > it > up > so that I can keep the User infor (userid, ect) in the Masterpage so > that > other pages can access it. Thanks for any ideas. > Michael >
On Fri, 31 Mar 2006 13:58:03 -0600, Michael
<Mi*****@discussions.microsoft.com> wrote: Hi Craig, Thanks for the reply, I tried using Dim ms as MasterPage = CType(Me.Page.MasterPageFile, MasterPage ) But I get a error trying to convert string to MasterPage. How do I do this with the MasterPageFile property? Can you please give me a short example. Thanks so much for the help. Michael P.S. Have you seen any article or books that discuss issues like this with MasterPages?
whoops! sleep-deprived friday for me....sorry, that property gives the
filename...change MasterPageFile to just Master
Dim ms as MasterPage = CType(Me.Page.Master, MasterPage )
sorry, I don't have many links on it, I've used master pages since 1.x so
I don't know of good 2.0 articles; I just did a refresher of the changes
they made in 2.0 by reading it in a book. Here's one article that looks
decent: http://www.codeproject.com/aspnet/InsideMasterPages.asp
--
Craig
Microsoft MVP - ASP/ASP.NET
Michael,
If I understood your scenario correctly, then you have a master page (which
is a control on the page) that has a child user control that needs to
communicate data (users information that is generated perhaps after some user
input) to the parent control (the master page).
In such scenarios (of communicating data between 2 controls on a web form)
you need to look at using events. When the child user control finishes
collecting the user info, then you raise an event, that would be consumed by
the parent control (the master page), which in turn would display the data on
its control (or do whatever other processing required).
To understand how to raise an event from the child control and how to
consume it by the master page, review these articles on the MSDN: http://msdn2.microsoft.com/en-us/library/17sde2xt.aspx
--
HTH,
Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote: I have setup a public variable in the Master Page "code-behind-file". Now I would like to set that value from the UserControl, but I can't seem to find a way to do this. Does anyone have any ideas? I'm basically trying to set it up so that I can keep the User infor (userid, ect) in the Masterpage so that other pages can access it. Thanks for any ideas. Michael
Hi Phillip,
Thanks so much for the reply. I've started to look into this and have come
across one issue. It seems that AddHandler is not supported in ASP.NET. Is
this true, if so, what includes do I need to include into the project. Here
is what I have so far.
Just a refresher of what I needed:
1. User enter UserId & password and selects submit.
2. The login User control will check what roles they have and create a User
Object.
3. Set the User Object to a Value stored in the MasterPage.
4. Purchasing screen shown and depending on the Role the user has will
determine what the user sees (Admin/Standard user).
So what I have come up with so far based on the event based noticifaction.
Stand alone Class File:
Public Class UserInfoEventArgs
Inherits EventArgs
Private _User as User
Public sub new(UserInfo as User )
_User = UserInfo
End Sub
Public ReadOnly Property UserInfo() as User
Get
UserInfo = _User
End Get
End Property
End Class
In the Login User Control:
Public Event Alarm as UserInfoEventHandler
Protected OverRidable Sub OnAlarm(e as UserInfoEventArgs )
RaiseEvent Alarm(me, e)
End Sub
Sub AuthenticateUser(userId as string, password as password)
'Do stuff here.......
'Now feed the UserInfo to the MasterPage via a Event
Dim e as New UserInfoEventArgs(lUser)
OnAlarm(e)
'Do more stuff....
end sub
In the MasterPage:
AddHandler Alarm, AddressOf OnCurrentUser
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs )
_CurrentUser = e.UserInfo
End Sub
Note: I get a syntax error on the AddHandler line.
Do I have this setup correctly for an ASP.NET page? Thanks again for any
suggestions.
Michael
"Phillip Williams" wrote: Michael,
If I understood your scenario correctly, then you have a master page (which is a control on the page) that has a child user control that needs to communicate data (users information that is generated perhaps after some user input) to the parent control (the master page).
In such scenarios (of communicating data between 2 controls on a web form) you need to look at using events. When the child user control finishes collecting the user info, then you raise an event, that would be consumed by the parent control (the master page), which in turn would display the data on its control (or do whatever other processing required).
To understand how to raise an event from the child control and how to consume it by the master page, review these articles on the MSDN: http://msdn2.microsoft.com/en-us/library/17sde2xt.aspx
-- HTH, Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote:
I have setup a public variable in the Master Page "code-behind-file". Now I would like to set that value from the UserControl, but I can't seem to find a way to do this. Does anyone have any ideas? I'm basically trying to set it up so that I can keep the User infor (userid, ect) in the Masterpage so that other pages can access it. Thanks for any ideas. Michael
Hi Michael,
You are 99% done. You just missed the correct syntax for AddHandler. It
should be like this:
AddHandler NameOfObject.Event, AddressOf MethodHandlingTheEvent
e.g.
AddHandler LoginInfoObject.Alarm, AddressOf OnCurrentUser
You could have also used the handle keyword on your method declaration like
this:
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) Handles
LoginInfoObject.Alarm
_CurrentUser = e.UserInfo
End Sub
--
HTH,
Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote: Hi Phillip, Thanks so much for the reply. I've started to look into this and have come across one issue. It seems that AddHandler is not supported in ASP.NET. Is this true, if so, what includes do I need to include into the project. Here is what I have so far. Just a refresher of what I needed: 1. User enter UserId & password and selects submit. 2. The login User control will check what roles they have and create a User Object. 3. Set the User Object to a Value stored in the MasterPage. 4. Purchasing screen shown and depending on the Role the user has will determine what the user sees (Admin/Standard user). So what I have come up with so far based on the event based noticifaction. Stand alone Class File: Public Class UserInfoEventArgs Inherits EventArgs Private _User as User
Public sub new(UserInfo as User ) _User = UserInfo End Sub
Public ReadOnly Property UserInfo() as User Get UserInfo = _User End Get End Property End Class
In the Login User Control: Public Event Alarm as UserInfoEventHandler
Protected OverRidable Sub OnAlarm(e as UserInfoEventArgs ) RaiseEvent Alarm(me, e) End Sub
Sub AuthenticateUser(userId as string, password as password) 'Do stuff here....... 'Now feed the UserInfo to the MasterPage via a Event Dim e as New UserInfoEventArgs(lUser) OnAlarm(e) 'Do more stuff.... end sub
In the MasterPage: AddHandler Alarm, AddressOf OnCurrentUser
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) _CurrentUser = e.UserInfo End Sub Note: I get a syntax error on the AddHandler line.
Do I have this setup correctly for an ASP.NET page? Thanks again for any suggestions. Michael
"Phillip Williams" wrote:
Michael,
If I understood your scenario correctly, then you have a master page (which is a control on the page) that has a child user control that needs to communicate data (users information that is generated perhaps after some user input) to the parent control (the master page).
In such scenarios (of communicating data between 2 controls on a web form) you need to look at using events. When the child user control finishes collecting the user info, then you raise an event, that would be consumed by the parent control (the master page), which in turn would display the data on its control (or do whatever other processing required).
To understand how to raise an event from the child control and how to consume it by the master page, review these articles on the MSDN: http://msdn2.microsoft.com/en-us/library/17sde2xt.aspx
-- HTH, Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote:
I have setup a public variable in the Master Page "code-behind-file". Now I would like to set that value from the UserControl, but I can't seem to find a way to do this. Does anyone have any ideas? I'm basically trying to set it up so that I can keep the User infor (userid, ect) in the Masterpage so that other pages can access it. Thanks for any ideas. Michael
Hi Phillip,
Thanks for the reply. Ok, I think I'm almost there. What I did was add the
following to the Page_Load event of the Master Page:
AddHandler LogIn1.Alarm , AddressOf OnCurrentUser
For some reason the event is not kicked off. I stepped through the code, and
after I hit submit (Login) the code in the Login user control works right,
and calls the RaiseEvent procedure. But for some reason the Master Page event
is not kicked off. The Page_Load event of the Master Page is run again after
clicking the Login button so the AddHandler is being called. Does this make
since. Thanks for any help.
Michael
"Phillip Williams" wrote: Hi Michael,
You are 99% done. You just missed the correct syntax for AddHandler. It should be like this:
AddHandler NameOfObject.Event, AddressOf MethodHandlingTheEvent e.g. AddHandler LoginInfoObject.Alarm, AddressOf OnCurrentUser
You could have also used the handle keyword on your method declaration like this:
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) Handles LoginInfoObject.Alarm _CurrentUser = e.UserInfo End Sub
-- HTH, Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote:
Hi Phillip, Thanks so much for the reply. I've started to look into this and have come across one issue. It seems that AddHandler is not supported in ASP.NET. Is this true, if so, what includes do I need to include into the project. Here is what I have so far. Just a refresher of what I needed: 1. User enter UserId & password and selects submit. 2. The login User control will check what roles they have and create a User Object. 3. Set the User Object to a Value stored in the MasterPage. 4. Purchasing screen shown and depending on the Role the user has will determine what the user sees (Admin/Standard user). So what I have come up with so far based on the event based noticifaction. Stand alone Class File: Public Class UserInfoEventArgs Inherits EventArgs Private _User as User
Public sub new(UserInfo as User ) _User = UserInfo End Sub
Public ReadOnly Property UserInfo() as User Get UserInfo = _User End Get End Property End Class
In the Login User Control: Public Event Alarm as UserInfoEventHandler
Protected OverRidable Sub OnAlarm(e as UserInfoEventArgs ) RaiseEvent Alarm(me, e) End Sub
Sub AuthenticateUser(userId as string, password as password) 'Do stuff here....... 'Now feed the UserInfo to the MasterPage via a Event Dim e as New UserInfoEventArgs(lUser) OnAlarm(e) 'Do more stuff.... end sub
In the MasterPage: AddHandler Alarm, AddressOf OnCurrentUser
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) _CurrentUser = e.UserInfo End Sub Note: I get a syntax error on the AddHandler line.
Do I have this setup correctly for an ASP.NET page? Thanks again for any suggestions. Michael
"Phillip Williams" wrote:
Michael,
If I understood your scenario correctly, then you have a master page (which is a control on the page) that has a child user control that needs to communicate data (users information that is generated perhaps after some user input) to the parent control (the master page).
In such scenarios (of communicating data between 2 controls on a web form) you need to look at using events. When the child user control finishes collecting the user info, then you raise an event, that would be consumed by the parent control (the master page), which in turn would display the data on its control (or do whatever other processing required).
To understand how to raise an event from the child control and how to consume it by the master page, review these articles on the MSDN: http://msdn2.microsoft.com/en-us/library/17sde2xt.aspx
-- HTH, Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote:
> I have setup a public variable in the Master Page "code-behind-file". Now I > would like to set that value from the UserControl, but I can't seem to find a > way to do this. Does anyone have any ideas? I'm basically trying to set it up > so that I can keep the User infor (userid, ect) in the Masterpage so that > other pages can access it. Thanks for any ideas. > Michael >
Hi Phillip,
I got the problem solved: I changed the code as follows:
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) Handles
LogIn1.Alarm
Now the code is working right. I want to thank you again for the help.
"Phillip Williams" wrote: Hi Michael,
You are 99% done. You just missed the correct syntax for AddHandler. It should be like this:
AddHandler NameOfObject.Event, AddressOf MethodHandlingTheEvent e.g. AddHandler LoginInfoObject.Alarm, AddressOf OnCurrentUser
You could have also used the handle keyword on your method declaration like this:
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) Handles LoginInfoObject.Alarm _CurrentUser = e.UserInfo End Sub
-- HTH, Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote:
Hi Phillip, Thanks so much for the reply. I've started to look into this and have come across one issue. It seems that AddHandler is not supported in ASP.NET. Is this true, if so, what includes do I need to include into the project. Here is what I have so far. Just a refresher of what I needed: 1. User enter UserId & password and selects submit. 2. The login User control will check what roles they have and create a User Object. 3. Set the User Object to a Value stored in the MasterPage. 4. Purchasing screen shown and depending on the Role the user has will determine what the user sees (Admin/Standard user). So what I have come up with so far based on the event based noticifaction. Stand alone Class File: Public Class UserInfoEventArgs Inherits EventArgs Private _User as User
Public sub new(UserInfo as User ) _User = UserInfo End Sub
Public ReadOnly Property UserInfo() as User Get UserInfo = _User End Get End Property End Class
In the Login User Control: Public Event Alarm as UserInfoEventHandler
Protected OverRidable Sub OnAlarm(e as UserInfoEventArgs ) RaiseEvent Alarm(me, e) End Sub
Sub AuthenticateUser(userId as string, password as password) 'Do stuff here....... 'Now feed the UserInfo to the MasterPage via a Event Dim e as New UserInfoEventArgs(lUser) OnAlarm(e) 'Do more stuff.... end sub
In the MasterPage: AddHandler Alarm, AddressOf OnCurrentUser
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) _CurrentUser = e.UserInfo End Sub Note: I get a syntax error on the AddHandler line.
Do I have this setup correctly for an ASP.NET page? Thanks again for any suggestions. Michael
"Phillip Williams" wrote:
Michael,
If I understood your scenario correctly, then you have a master page (which is a control on the page) that has a child user control that needs to communicate data (users information that is generated perhaps after some user input) to the parent control (the master page).
In such scenarios (of communicating data between 2 controls on a web form) you need to look at using events. When the child user control finishes collecting the user info, then you raise an event, that would be consumed by the parent control (the master page), which in turn would display the data on its control (or do whatever other processing required).
To understand how to raise an event from the child control and how to consume it by the master page, review these articles on the MSDN: http://msdn2.microsoft.com/en-us/library/17sde2xt.aspx
-- HTH, Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote:
> I have setup a public variable in the Master Page "code-behind-file". Now I > would like to set that value from the UserControl, but I can't seem to find a > way to do this. Does anyone have any ideas? I'm basically trying to set it up > so that I can keep the User infor (userid, ect) in the Masterpage so that > other pages can access it. Thanks for any ideas. > Michael >
My pleasure.
--
HTH,
Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote: Hi Phillip, I got the problem solved: I changed the code as follows: Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) Handles LogIn1.Alarm
Now the code is working right. I want to thank you again for the help.
"Phillip Williams" wrote:
Hi Michael,
You are 99% done. You just missed the correct syntax for AddHandler. It should be like this:
AddHandler NameOfObject.Event, AddressOf MethodHandlingTheEvent e.g. AddHandler LoginInfoObject.Alarm, AddressOf OnCurrentUser
You could have also used the handle keyword on your method declaration like this:
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) Handles LoginInfoObject.Alarm _CurrentUser = e.UserInfo End Sub
-- HTH, Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote:
Hi Phillip, Thanks so much for the reply. I've started to look into this and have come across one issue. It seems that AddHandler is not supported in ASP.NET. Is this true, if so, what includes do I need to include into the project. Here is what I have so far. Just a refresher of what I needed: 1. User enter UserId & password and selects submit. 2. The login User control will check what roles they have and create a User Object. 3. Set the User Object to a Value stored in the MasterPage. 4. Purchasing screen shown and depending on the Role the user has will determine what the user sees (Admin/Standard user). So what I have come up with so far based on the event based noticifaction. Stand alone Class File: Public Class UserInfoEventArgs Inherits EventArgs Private _User as User
Public sub new(UserInfo as User ) _User = UserInfo End Sub
Public ReadOnly Property UserInfo() as User Get UserInfo = _User End Get End Property End Class
In the Login User Control: Public Event Alarm as UserInfoEventHandler
Protected OverRidable Sub OnAlarm(e as UserInfoEventArgs ) RaiseEvent Alarm(me, e) End Sub
Sub AuthenticateUser(userId as string, password as password) 'Do stuff here....... 'Now feed the UserInfo to the MasterPage via a Event Dim e as New UserInfoEventArgs(lUser) OnAlarm(e) 'Do more stuff.... end sub
In the MasterPage: AddHandler Alarm, AddressOf OnCurrentUser
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) _CurrentUser = e.UserInfo End Sub Note: I get a syntax error on the AddHandler line.
Do I have this setup correctly for an ASP.NET page? Thanks again for any suggestions. Michael
"Phillip Williams" wrote:
> Michael, > > If I understood your scenario correctly, then you have a master page (which > is a control on the page) that has a child user control that needs to > communicate data (users information that is generated perhaps after some user > input) to the parent control (the master page). > > In such scenarios (of communicating data between 2 controls on a web form) > you need to look at using events. When the child user control finishes > collecting the user info, then you raise an event, that would be consumed by > the parent control (the master page), which in turn would display the data on > its control (or do whatever other processing required). > > To understand how to raise an event from the child control and how to > consume it by the master page, review these articles on the MSDN: > http://msdn2.microsoft.com/en-us/library/17sde2xt.aspx > > -- > HTH, > Phillip Williams > http://www.societopia.net > http://www.webswapp.com > > > "Michael" wrote: > > > I have setup a public variable in the Master Page "code-behind-file". Now I > > would like to set that value from the UserControl, but I can't seem to find a > > way to do this. Does anyone have any ideas? I'm basically trying to set it up > > so that I can keep the User infor (userid, ect) in the Masterpage so that > > other pages can access it. Thanks for any ideas. > > Michael > >
Hi Michael,
Yes, you should have placed the event wiring during the page.init. (The
other solution of using the handles statement of the function signature that
you got working does the same)
--
HTH,
Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote: Hi Phillip, Thanks for the reply. Ok, I think I'm almost there. What I did was add the following to the Page_Load event of the Master Page: AddHandler LogIn1.Alarm , AddressOf OnCurrentUser
For some reason the event is not kicked off. I stepped through the code, and after I hit submit (Login) the code in the Login user control works right, and calls the RaiseEvent procedure. But for some reason the Master Page event is not kicked off. The Page_Load event of the Master Page is run again after clicking the Login button so the AddHandler is being called. Does this make since. Thanks for any help. Michael
"Phillip Williams" wrote:
Hi Michael,
You are 99% done. You just missed the correct syntax for AddHandler. It should be like this:
AddHandler NameOfObject.Event, AddressOf MethodHandlingTheEvent e.g. AddHandler LoginInfoObject.Alarm, AddressOf OnCurrentUser
You could have also used the handle keyword on your method declaration like this:
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) Handles LoginInfoObject.Alarm _CurrentUser = e.UserInfo End Sub
-- HTH, Phillip Williams http://www.societopia.net http://www.webswapp.com
"Michael" wrote:
Hi Phillip, Thanks so much for the reply. I've started to look into this and have come across one issue. It seems that AddHandler is not supported in ASP.NET. Is this true, if so, what includes do I need to include into the project. Here is what I have so far. Just a refresher of what I needed: 1. User enter UserId & password and selects submit. 2. The login User control will check what roles they have and create a User Object. 3. Set the User Object to a Value stored in the MasterPage. 4. Purchasing screen shown and depending on the Role the user has will determine what the user sees (Admin/Standard user). So what I have come up with so far based on the event based noticifaction. Stand alone Class File: Public Class UserInfoEventArgs Inherits EventArgs Private _User as User
Public sub new(UserInfo as User ) _User = UserInfo End Sub
Public ReadOnly Property UserInfo() as User Get UserInfo = _User End Get End Property End Class
In the Login User Control: Public Event Alarm as UserInfoEventHandler
Protected OverRidable Sub OnAlarm(e as UserInfoEventArgs ) RaiseEvent Alarm(me, e) End Sub
Sub AuthenticateUser(userId as string, password as password) 'Do stuff here....... 'Now feed the UserInfo to the MasterPage via a Event Dim e as New UserInfoEventArgs(lUser) OnAlarm(e) 'Do more stuff.... end sub
In the MasterPage: AddHandler Alarm, AddressOf OnCurrentUser
Public sub OnCurrentUser(sender as Object, e as UserInfoEventArgs ) _CurrentUser = e.UserInfo End Sub Note: I get a syntax error on the AddHandler line.
Do I have this setup correctly for an ASP.NET page? Thanks again for any suggestions. Michael
"Phillip Williams" wrote:
> Michael, > > If I understood your scenario correctly, then you have a master page (which > is a control on the page) that has a child user control that needs to > communicate data (users information that is generated perhaps after some user > input) to the parent control (the master page). > > In such scenarios (of communicating data between 2 controls on a web form) > you need to look at using events. When the child user control finishes > collecting the user info, then you raise an event, that would be consumed by > the parent control (the master page), which in turn would display the data on > its control (or do whatever other processing required). > > To understand how to raise an event from the child control and how to > consume it by the master page, review these articles on the MSDN: > http://msdn2.microsoft.com/en-us/library/17sde2xt.aspx > > -- > HTH, > Phillip Williams > http://www.societopia.net > http://www.webswapp.com > > > "Michael" wrote: > > > I have setup a public variable in the Master Page "code-behind-file". Now I > > would like to set that value from the UserControl, but I can't seem to find a > > way to do this. Does anyone have any ideas? I'm basically trying to set it up > > so that I can keep the User infor (userid, ect) in the Masterpage so that > > other pages can access it. Thanks for any ideas. > > Michael > > This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: martin |
last post by:
Hi,
I am a web page and a web user control. My web user control is placed in my
web page using the following directive
<%@ Register TagPrefix="uc1" TagName="Header"...
|
by: George G. |
last post by:
Hi there,
I am busy writing a new asp.net application and I am reusing some of my
existing asp functions and methods in a user control. I need access to
session, request and response in some of...
|
by: adh |
last post by:
Hello,
How do I get the referebce to the last added UserControl:
Me.Controls.Add(myUserControl)
When I add one after another?
Return CType(Me.Controls(.Controls.Count - 1), _ myUserControl)...
|
by: PJ |
last post by:
I am trying to get reference to a Master page from a web user control.
However, I cannot seem to even access the type. I have been referencing the
master page in forms by declaring the master...
|
by: Charlie |
last post by:
Hi:
I'm trying to pass a reference to a user control to a class. The user
control exposes its elements via properties. When I inspect parameter (user
control is passed to class using "this") I...
|
by: yoknows |
last post by:
Hello .Net Gurus. This is my first post here so I apologize in advance
if I have not provided the right information. I hope someone has seen
this problem before and can tell me what I am doing...
|
by: o0JoeCool0o |
last post by:
I am trying to create a User Control, that will be a message box with
input options
if I call okconf.visible = true in the page load of the user control it
works fine, but if i then try to call...
|
by: Paul |
last post by:
Hello:
I want to nlude this statement into everyone of my application's .aspx pages.
<%@ Import Namespace="System.Data.SQLClient" %>
What is the best practice to do this?
Can I do this...
|
by: Managed Code |
last post by:
I have a BasePage class that derives from System.Web.UI.Page. All of my
content pages derive from this. The derived page classes use the
following MasterType declaration that follows to reference...
|
by: William Youngman |
last post by:
I am on a team that is developing a proposal generation web application and we are using a custom base page (ProGenBase.cs) located in the app_code directory and all of the app's web pages inherit...
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: ryjfgjl |
last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
| |