Asp.Net - Get Height of HtmlGenericControl

Hi,

Using ASP.Net, how do you get the height of a HtmlGenericControl?

Non-Functional Example:

Dim ContentPaneControl As HtmlGenericControl = CType(Master.FindControl("ContentPane"), HtmlGenericControl)

Dim MyDivHeight As String = ContentPaneControl.Attributes("height").ToString

Thank you,
Ben
BeircheartAsked:
Who is Participating?
 
BeircheartAuthor Commented:
Hi Burnie,

Unfortunately that didn't work either

However, I have implemented a workaround using Javascript (See attached). This code is embedded on my Master Page

While I am satisfied with this workaround, I would prefer to avoid such a method due to the fact that this function is now being called on every page even though it is only needed on one of them

I will leave this question open until Thursday in case someone can provide a solution rather than a workaround

For the sake of clarity, I will summarise what I'm trying to do:

I have a div in my Master page (Lets call it MasterPageDIV). I have a conent page called MyContentPage.aspx. I would like to get the height of MasterPageDIV using .Net code in the MyContentPage.aspx Page_Load event.

All the best,
Ben
<script type="text/javascript">

        try {
            window.onresize = SetImagePosition
        }
        catch (e) {
            // Ignore Error
        }

        function SetImagePosition() {
            try {
                
                document.getElementById('CalendarStyle').style.marginTop = 0;
                
                if (document.getElementById('Background-Home')) {
                    document.getElementById('Background-Home').style.marginTop = 1;
                }

                var ContentPaneHeight = document.getElementById('ContentPane').offsetHeight;
                var LinksPaneHeight = document.getElementById('LinksPane').offsetHeight;

                if (LinksPaneHeight < ContentPaneHeight) {
                    document.getElementById('CalendarStyle').style.marginTop = ContentPaneHeight - LinksPaneHeight + 10;
                    if (document.getElementById('Background-Home')) {
                        document.getElementById('Background-Home').style.marginBottom = 1;
                    }
                }

                else if (LinksPaneHeight > ContentPaneHeight) {
                    if (document.getElementById('Background-Home')) {
                        document.getElementById('Background-Home').style.marginTop = LinksPaneHeight - ContentPaneHeight;
                    }
                }
            }
            catch (e) {
                // Ignore Error
            }
        }

    </script>
</head>
<body onload="SetImagePosition()">

Open in new window

0
 
BurniePCommented:
If you change Attributes for Style?

Dim MyDivHeight As String = ContentPaneControl.Style("height").ToString
0
 
BeircheartAuthor Commented:
No go I'm afraid

"Object reference not set to an instance of an object"
0
 
BurniePCommented:

I think you have a problem with getting your control.

Get the ContentPlaceHolder first

Dim mContentPlaceHolder As ContentPlaceHolder = CType(Master.FindControl("ContentPlaceHolder1"), ContentPlaceHolder)
(where "ContentPlaceHolder1" is the ID of your ContentPlaceHolder.

Then try :

Dim ContentPaneControl As HtmlGenericControl = CType(mContentPlaceHolder .FindControl("ContentPane"), HtmlGenericControl)

0
 
BeircheartAuthor Commented:
This workaround will have to do
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.