This is a migrated thread and some comments may be shown as answers.

Wildcard $find for control in ContentPlaceHolder for ASP.NET

1 Answer 144 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Paul Robertson
Top achievements
Rank 1
Paul Robertson asked on 22 May 2012, 05:52 PM

Hi there

Can anybody assist with this problem? I have a radEditor in an ASP.NET page using a MasterPage, which as you will know, uses ContentPlaceHolder controls to hold other controls, and which also prefixes the declared control id with that of the ContentPlaceHolder in question, e.g., from a server-side id of 'myRadEditor' the client-side id would end up being something along the lines of:

'ct100_myContentplaceholder_myRadEditor'

When it comes to using the client-side $find command, all of the examples I can find show the use of the following syntax:

<%= myServerSideID.ClientID %> 

but as far as I know, this is only valid for Javascript embedded within the <SCRIPT></SCRIPT> 'node' of the the .aspx file. However, I have a set of external Javascript script files added dynamically and programmatically, rather than specified declaratively in the aspx files in question.

So my question is, how would I go about using the $find command to get a reference to a radEditor control, or indeed any telerik control, using a wildcard search for the server-side id (e.g., 'myRadEditor') from within an 'external' Javascript file, given that the

<%= ... %> syntax is not available?

Thanks very much if you can advise!

Regards

1 Answer, 1 is accepted

Sort by
0
Martin
Telerik team
answered on 24 May 2012, 01:53 PM
Hello Paul,

Since you register the script dynamically, the only approach that comes into my mind is to register the control id on the page before the script is loaded. Here is how a sample code looks:

Markup:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <telerik:RadCodeBlock runat="server" ID="RadCodeBlock1">
        <script type="text/javascript">
            var numericTextBox = "<%= RNTB1.ClientID %>";
        </script>
    </telerik:RadCodeBlock>
   
    <telerik:RadNumericTextBox runat="server" ID="RNTB1" Value="4"></telerik:RadNumericTextBox>
    <input type="button" onclick="MyClick();" value="Get value on the client" />
</asp:Content>

Code:

protected void Page_PreRender()
{
    ScriptManager.RegisterClientScriptInclude(Page, Page.GetType(), "DynamicScript", "Scripts/JScript.js");
}

JScript.js:

function MyClick()
{
    alert($find(numericTextBox).get_value());
}

I hope this helps.

Kind regards,
Martin
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
Tags
General Discussions
Asked by
Paul Robertson
Top achievements
Rank 1
Answers by
Martin
Telerik team
Share this question
or