Solved

ASP.NET MasterPage How to Access controls within a contentplaceholder

Posted on 2008-06-15
4
1,860 Views
Last Modified: 2013-11-26
I am trying to create property "genMessage" within a masterpage and access the panel control within a contentholder and read/write the text contained within it.  I can access the contentplaceholder,  it shows a control count of 1,  but I do not see how to read/write the text within it (at the moment the text is within a div tag...)


<<<EXCERPT FROM MASTERPAGE>>>>

...

...

...

    <div>

        <asp:contentplaceholder id="MenuContainer" runat="server">

            <a href="~/CustomNavBar.ascx">~/CustomNavBar.ascx</a>

        </asp:contentplaceholder>

        

        <asp:contentplaceholder id="mainContentContainer" runat="server">

        </asp:contentplaceholder>
 

        <asp:contentplaceholder id="generalMessages" runat="server">

        

          <asp:Panel ID="msgContent" runat="server"  BackColor="RosyBrown" ForeColor="Aqua" Width="631px">

            <div>

            This page is still under contruction.  Please check you email for update information or check back soon.

            </div>

          </asp:Panel>

        

        </asp:contentplaceholder>
 

    </div>

...

...

...
 

<<<From The Associated MasterPage vb file>>>
 

    Public Property genMessage() As String

        Get

            Dim cph As ContentPlaceHolder = New ContentPlaceHolder

            cph = Me.FindControl("generalMessages")

            If Not cph Is Nothing Then

                Dim lctrl As LiteralControl = New LiteralControl

                lctrl = CType(cph.Controls.Item(0), LiteralControl)

                Return pnl.ToString
 

            Else

                Return String.Empty

            End If
 

        End Get
 

        Set(ByVal value As String)

            Dim pnl As Panel = New Panel

            pnl = Me.FindControl("msgContent")

            If Not pnl Is Nothing Then

                Page.ClientScript.RegisterClientScriptBlock(GetType(Page), "GENERALMESSAGE", value)

                'Page.RegisterClientScriptBlock("SETGENERALMESSAGE", value)

            End If

        End Set

    End Property

Open in new window

0
Comment
Question by:Howard Bash
  • 2
4 Comments
 
LVL 18

Accepted Solution

by:
Ajay Sharma earned 250 total points
ID: 21791083
I think line no. 37 should be corrected.

instead of
Return pnl.ToString

it should be
Return lctrl.ToString

==========

Secondly Asp.net Panel control does not have a Text property, so if you want to get set the text use label inside panel
0
 
LVL 13

Assisted Solution

by:sm394
sm394 earned 250 total points
ID: 21791748
you can access controls in contentplaceholder  by using  controls client ID property
<%= btnSearch.ClientID %> In your case  msgContent.ClientID
also this is good article about Master pages and content pages

http://www.odetocode.com/articles/450.aspx
read section "FindControl, JavaScript, and Naming Containers" for more info
0
 
LVL 13

Expert Comment

by:sm394
ID: 21791802
0
 
LVL 1

Author Closing Comment

by:Howard Bash
ID: 31467453
I appreciate the pointers.  I only wish that one of my experts had included some trival complete example.  But,  definitely headed me in the right direction.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
Both in life and business – not all partnerships are created equal. As the demand for cloud services increases, so do the number of self-proclaimed cloud partners. Asking the right questions up front in the partnership, will enable both parties …

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now