javascript in user control.

A

archana

Hi all,

i am having one user control. what i want is to add javascript which
will gets called on button click of user control.

but user control is not working if i add javascript in user control..
but if i add javascript in page in which i am adding user control then
that javascript is executed properly.

i tested by displaying alert message in javascript. can anyone tell
me how will i add javascript in user control.

and one more thing controls present in user control, can't be access
directly in javascript. i checked viewsource of page what i found is
for controls of user control 'ctl' get prefixed. can nyone tell me
reason behind this?

any how will i get this id of controls of user control?

please help me asap.

thanks in advance
 
S

Stan

Hi all,

i am having one user control.  what i want is to add javascript which
will gets called on button click of user control.

but user control is not working if i add javascript in user control..
but if i add javascript in page in which i am adding user control then
that javascript is executed properly.

i tested by displaying alert message in javascript.  can anyone tell
me how will i add javascript in user control.

and one more thing controls present in user control, can't be access
directly in javascript.  i checked viewsource of page what i found is
for controls of user control 'ctl' get prefixed.  can nyone tell me
reason behind this?

any how will i get this id of controls of user control?

please help me asap.

thanks in advance

Try inserting the script using the Page.ClientScript property to
create a ClientScriptManager class to insert the script.

The ClientID property of web server controls is constructed to
guarantee a unique id within the context of the rendered page. The
control's ID property is not used as it is because scoping rules allow
identifiers to be re-used within code and within templates inside
databound controls.
 
A

archana

Try inserting the script using the Page.ClientScript property to
create a ClientScriptManager class to insert the script.

The ClientID property of web server controls is constructed to
guarantee a unique id within the context of the rendered page. The
control's ID property is not used as it is because scoping rules allow
identifiers to be re-used within code and within templates inside
databound controls.- Hide quoted text -

- Show quoted text -

Thanks a lot for reply.

how will i access controls of user cotrol in parent page?

please help me asap.
 
W

wisccal

Hi Archana,

I'm not sure if you would like to access the controls in your user
control in codebehind or in Javascript. The below sample does both. In
both cases, the trick is to use FindControl on your user control.
Please post back if this doesn't answer your question.

Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="JSInUserControlTest._Default"
%>
<%@ Register Src="~/WebUserControl1.ascx" TagName="UserCtrl"
TagPrefix="my" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function ChangeText() {
var theLabel = document.getElementById('<%=
myUserCtrl.FindControl("theLabel").ClientID %>');
theLabel.innerText = "Changed By JS";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<my:UserCtrl ID="myUserCtrl" runat="server" />
<asp:Button ID="theJsButton" Text="Js Button"
OnClientClick="ChangeText();return false" runat="server" />
<asp:Button ID="theAspButton" Text="ASP Button"
OnClick="theAspButton_Click" runat="server" />
</div>
</form>
</body>
</html>

Default.aspx.cs:

using System;
using System.Web.UI.WebControls;

namespace JSInUserControlTest
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void theAspButton_Click(object sender, EventArgs e)
{
Label lbl = (Label)myUserCtrl.FindControl("theLabel");
lbl.Text = "Changed in codebehind";
}

}
}

WebUserControl1.ascs:

<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="WebUserControl1.ascx.cs"
Inherits="JSInUserControlTest.WebUserControl1" %>
<asp:Label ID="theLabel" Text="Some text here" runat="server" />

==============
Regards,
Steve
www.stkomp.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,065
Latest member
OrderGreenAcreCBD

Latest Threads

Top