Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > Reference A var on Master Page from User Control

Reply
Thread Tools

Reference A var on Master Page from User Control

 
 
=?Utf-8?B?TWljaGFlbA==?=
Guest
Posts: n/a
 
      03-31-2006
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

 
Reply With Quote
 
 
 
 
S. Justin Gengo
Guest
Posts: n/a
 
      03-31-2006
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" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
>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
>



 
Reply With Quote
 
 
 
 
Craig Deelsnyder
Guest
Posts: n/a
 
      03-31-2006
On Fri, 31 Mar 2006 11:30:03 -0600, Michael
<(E-Mail Removed)> 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
 
Reply With Quote
 
=?Utf-8?B?TWljaGFlbA==?=
Guest
Posts: n/a
 
      03-31-2006
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" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> >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
> >

>
>
>

 
Reply With Quote
 
=?Utf-8?B?TWljaGFlbA==?=
Guest
Posts: n/a
 
      03-31-2006
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
> <(E-Mail Removed)> 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
>

 
Reply With Quote
 
S. Justin Gengo
Guest
Posts: n/a
 
      03-31-2006
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" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> 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" <(E-Mail Removed)> wrote in message
>> news:(E-Mail Removed)...
>> >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
>> >

>>
>>
>>



 
Reply With Quote
 
Craig Deelsnyder
Guest
Posts: n/a
 
      03-31-2006
On Fri, 31 Mar 2006 13:58:03 -0600, Michael
<(E-Mail Removed)> 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
 
Reply With Quote
 
=?Utf-8?B?UGhpbGxpcCBXaWxsaWFtcw==?=
Guest
Posts: n/a
 
      03-31-2006
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
>

 
Reply With Quote
 
=?Utf-8?B?TWljaGFlbA==?=
Guest
Posts: n/a
 
      04-06-2006
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
> >

 
Reply With Quote
 
=?Utf-8?B?UGhpbGxpcCBXaWxsaWFtcw==?=
Guest
Posts: n/a
 
      04-06-2006
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
> > >

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Setting the value of a Master page's control's property using a property of the Master page Nathan Sokalski ASP .Net 25 03-04-2010 03:42 AM
ASP.NET 2.0: master pages and web user controls: reference to a non-shared member requires an object reference bminder ASP .Net 0 06-24-2005 12:22 AM
Difference between Session["var"] and Session("var") thomson ASP .Net 10 06-20-2005 01:02 PM
seeking servlet "Master" keep getting "Master/servlet/Master" not found. Tomcat 5.0.25 Doug McCann Java 1 08-05-2004 09:16 PM
Threads.. Session var lost, App var ok Alvin Bruney ASP .Net 1 12-02-2003 01:56 AM



Advertisments