Home All Groups Group Topic Archive Search About
Author
2 Nov 2007 7:43 PM
john
I read that this method:



<script type="text/javascript" language="javascript">

  alert($get('<%= CheckTxt.ClientID%>').value)

</script>



Can be used instead of:



alert(document.getElementById("TabContainer1_TabPanel5_FormView8_CheckTxt").value)





But I receive a CheckTxt not Declared error, any suggestion as to how to
implement this?



Thanks

John

Author
5 Nov 2007 5:13 AM
Walter Wang [MSFT]
Hi John,

The purpose of using <%= CheckTxt.ClientID %> is to output a dynamic id of
the control CheckTxt at run-time. To make ASP.NET compiler recognize
CheckTxt, you must have a control with ID "CheckTxt" at the direct child
control hierarchy of current container (Page class or UserControl according
to the context).

If you're having other INamingContainer between this control and the root
container (for example, you're defining a control with id "CheckTxt" within
an ITemplate such as ItemTemplate), the compiler will not be able to refer
to the control directly using reference "CheckTxt".

You can use ClientScript.RegisterStartupScript or RegisterScriptBlock to
generate the javascript functions at run-time; at that time if you could
get a reference to a control (using FindControl), then you can use its
ClientID property to build the javascript.

Regards,
Walter Wang (waw***@online.microsoft.com, remove 'online.')
Microsoft Online Community Support

==================================================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
Author
5 Nov 2007 10:41 AM
john
Thanks, I was doing some experimenting and was thinking maybe it was just as
you stated, because if I just added a label control if found it no problem;
so it's the template that is at issue. I will study your other method to see
if I can learn it, I don't like having to rewrite my script with every
design change, so that would be a plus if I can do it your way.

John
""Walter Wang [MSFT]"" <waw***@online.microsoft.com> wrote in message
Show quote
news:tIH2Rq2HIHA.4268@TK2MSFTNGHUB02.phx.gbl...
> Hi John,
>
> The purpose of using <%= CheckTxt.ClientID %> is to output a dynamic id of
> the control CheckTxt at run-time. To make ASP.NET compiler recognize
> CheckTxt, you must have a control with ID "CheckTxt" at the direct child
> control hierarchy of current container (Page class or UserControl
> according
> to the context).
>
> If you're having other INamingContainer between this control and the root
> container (for example, you're defining a control with id "CheckTxt"
> within
> an ITemplate such as ItemTemplate), the compiler will not be able to refer
> to the control directly using reference "CheckTxt".
>
> You can use ClientScript.RegisterStartupScript or RegisterScriptBlock to
> generate the javascript functions at run-time; at that time if you could
> get a reference to a control (using FindControl), then you can use its
> ClientID property to build the javascript.
>
> Regards,
> Walter Wang (waw***@online.microsoft.com, remove 'online.')
> Microsoft Online Community Support
>
> ==================================================
> When responding to posts, please "Reply to Group" via your newsreader so
> that others may learn and benefit from your issue.
> ==================================================
>
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
>

AddThis Social Bookmark Button