Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP .Net (http://www.velocityreviews.com/forums/f29-asp-net.html)
-   -   Show/hide divs according to server side variable (http://www.velocityreviews.com/forums/t621347-show-hide-divs-according-to-server-side-variable.html)

Mike P 06-20-2008 11:02 AM

Show/hide divs according to server side variable
 
How would I show or hide a div that is using client side Javascript
based upon a server side variable?

Here are my divs :

<div id="idButton5" class="otherLeftBarLink" onmouseover="javascript:
changeStylesMouseOver('5');" onmouseout="javascript:
changeStylesMouseOut('5');" onclick="location='/AddProject.aspx'">
<div class="leftBarLinkText">
Add Project
</div>
</div>
<div id="idButton7" class="otherLeftBarLink"
onmouseover="javascript: changeStylesMouseOver('7');"
onmouseout="javascript: changeStylesMouseOut('7');"
onclick="location='/AddTask.aspx'">
<div class="leftBarLinkText">
Add Task
</div>
</div>

I want to use a variable that is being set in the Page_Load event to
determine whether I show or hide each of these divs.



*** Sent via Developersdex http://www.developersdex.com ***

Munna 06-20-2008 11:08 AM

Re: Show/hide divs according to server side variable
 
Hi,

Put your variable's value in a hidden input ....
access the hidden input from javascript ...
and perform your operation

Best of luck

Munna

www.munna.shatkotha.com
www.munna.shatkotha.com/blog
www.shatkotha.com

Mike P 06-20-2008 11:22 AM

Re: Show/hide divs according to server side variable
 
How exactly would I do that?


*** Sent via Developersdex http://www.developersdex.com ***

BWC 06-20-2008 11:38 AM

RE: Show/hide divs according to server side variable
 
If you add the attribute runat="server" to the divs, you will be able to
programmatically reference them as a server side control.

For example

//asp.net
<div runat="server" id="idButton5" class="otherLeftBarLink"
onmouseover="javascript:
changeStylesMouseOver('5');" onmouseout="javascript:
changeStylesMouseOut('5');" onclick="location='/AddProject.aspx'">
<div class="leftBarLinkText">
Add Project
</div>
</div>


//c#

protected void Page_Load(object sender, EventArgs e)
{
this.idButton5.Visible = false;
}


Obviously this c# can be extended to check a variable that exists in the
class, and thus conditionally show the div.

If you are rendering the Div using a Repeater or other databound control,
you may not be able to do this directly, but would need to first find the
control within the repeater in order to access it programmatically.

Good luck,
BWC

"Mike P" wrote:

> How would I show or hide a div that is using client side Javascript
> based upon a server side variable?
>
> Here are my divs :
>
> <div id="idButton5" class="otherLeftBarLink" onmouseover="javascript:
> changeStylesMouseOver('5');" onmouseout="javascript:
> changeStylesMouseOut('5');" onclick="location='/AddProject.aspx'">
> <div class="leftBarLinkText">
> Add Project
> </div>
> </div>
> <div id="idButton7" class="otherLeftBarLink"
> onmouseover="javascript: changeStylesMouseOver('7');"
> onmouseout="javascript: changeStylesMouseOut('7');"
> onclick="location='/AddTask.aspx'">
> <div class="leftBarLinkText">
> Add Task
> </div>
> </div>
>
> I want to use a variable that is being set in the Page_Load event to
> determine whether I show or hide each of these divs.
>
>
>
> *** Sent via Developersdex http://www.developersdex.com ***
>


rogers.terry@gmail.com 06-20-2008 11:43 AM

Re: Show/hide divs according to server side variable
 
In the page load event register some custom javascript to include on
the page, e.g.

protected void Page_Load(object sender, EventArgs e)
{
// build custom javascript string based on server parameter
string myJavascript = "var myParameter = '" + this.MyParameter +
"';";
// register script on page
Page.ClientScript.RegisterClientScriptBlock(
Page.GetType(), "MyScript", myJavascript, true);
// now myParameter can be used in javascript code on the page
}
private string MyParameter
{
get { ... }
}


Alternatively you could put runat="server" on the divs and set the
Visible property as you would on a server control, but that's entirly
server side, not javascript.

Terry.



On Jun 20, 12:02*pm, Mike P <mike.p...@gmail.com> wrote:
> How would I show or hide a div that is using client side Javascript
> based upon a server side variable?
>
> Here are my divs :
>
> <div id="idButton5" class="otherLeftBarLink" onmouseover="javascript:
> changeStylesMouseOver('5');" onmouseout="javascript:
> changeStylesMouseOut('5');" onclick="location='/AddProject.aspx'">
> * * * * <div class="leftBarLinkText">
> * * * * * * Add Project
> * * * * </div>
> * * </div>
> * * <div id="idButton7" class="otherLeftBarLink"
> onmouseover="javascript: changeStylesMouseOver('7');"
> onmouseout="javascript: changeStylesMouseOut('7');"
> onclick="location='/AddTask.aspx'">
> * * * * <div class="leftBarLinkText">
> * * * * * * Add Task
> * * * * </div>
> * * </div>
>
> I want to use a variable that is being set in the Page_Load event to
> determine whether I show or hide each of these divs.
>
> *** Sent via Developersdexhttp://www.developersdex.com***



Mike P 06-20-2008 01:50 PM

Re: Show/hide divs according to server side variable
 
I am setting runat="server" on the divs and set the
Visible property as you would on a server control, but whenever my code
calls one of my Javascript functions I get the error 'object required'
when I am passing the div id to the function changeStylesMouseOver(id).
But this works fine when I don't set runat="server".

Any ideas why?

*** Sent via Developersdex http://www.developersdex.com ***

rogers.terry@gmail.com 06-20-2008 02:00 PM

Re: Show/hide divs according to server side variable
 
On Jun 20, 2:50*pm, Mike P <mike.p...@gmail.com> wrote:
> I am setting runat="server" on the divs and set the
> Visible property as you would on a server control, but whenever my code
> calls one of my Javascript functions I get the error 'object required'
> when I am passing the div id to the function changeStylesMouseOver(id).
> But this works fine when I don't set runat="server".
>
> Any ideas why?
>
> *** Sent via Developersdexhttp://www.developersdex.com***


The server side Visible property will cause the control not to be
rendered out to the browser.

To have it there but hidden change the CSS style properties of the
control rather than the Visible property.

Terry.

BWC 06-20-2008 02:15 PM

Re: Show/hide divs according to server side variable
 
In addition, marking the div tag as runat=server will have changed its ID
when it is rendered on the client.

In order to get access to the div tag with a modified name, you have a
number of options:

1: Reference it as an object in javascript, notice the use of the keyword
"this" in the following javascript statements :
<div id="idButton5" class="otherLeftBarLink" onmouseover="javascript:
changeStylesMouseOver('5', this);" onmouseout="javascript:
changeStylesMouseOut('5', this);" onclick="location='/AddProject.aspx'">

You would then be able to set a class on "this" by defining the
changeStylesMouseOver thusly:

function changeStylesMouseOver(intButtonId, divElement)
{
divElement.className = "someCSSClass";
}

2: Render the Control.ClientID server side value into the javascript context:
<script language="javascript">
function changeStylesMouseOver(intButtonId)
{
document.getElementById("<%= this.idButton5.ClientID %>").className =
"someCSSClass";
}
</script>


Good luck,
BWC


"rogers.terry@gmail.com" wrote:

> On Jun 20, 2:50 pm, Mike P <mike.p...@gmail.com> wrote:
> > I am setting runat="server" on the divs and set the
> > Visible property as you would on a server control, but whenever my code
> > calls one of my Javascript functions I get the error 'object required'
> > when I am passing the div id to the function changeStylesMouseOver(id).
> > But this works fine when I don't set runat="server".
> >
> > Any ideas why?
> >
> > *** Sent via Developersdexhttp://www.developersdex.com***

>
> The server side Visible property will cause the control not to be
> rendered out to the browser.
>
> To have it there but hidden change the CSS style properties of the
> control rather than the Visible property.
>
> Terry.
>



All times are GMT. The time now is 10:43 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.