Solved

Access a dynamically created element

Posted on 2011-02-14
10
638 Views
Last Modified: 2012-05-11
Hello,

We need to access dynamically created elements on the client side. We would like to do that by using their IDs.

Currently, we can achieve this via the Sys.Application._components node.

Any other viable suggestions?

$Find can be used but we don't know the ID of the elements.

getElementsByTagName wouldn't yield the right names since the objects themselves aren't rendered (CollapsedPanelExtender).

What other means are there to access the right ID other than using Sys.Application.getComponents() ????

Thanks a bunch.
0
Comment
Question by:cerub
  • 5
  • 4
10 Comments
 
LVL 82

Expert Comment

by:leakim971
ID: 34887616
If you put it in a unique "container", for example a div with a specific ID that you know, you know the child of this div is your object.
0
 

Author Comment

by:cerub
ID: 34887744
But wouldn't the child object's ID change in an arbitrary way as well? I would have to somehow retrieve the "new" ID of the DIV as well. What do you think?
0
 
LVL 82

Expert Comment

by:leakim971
ID: 34887840
I don't you really need an ID. Generaly we need to get a référence on an object. Once you get this reference you can get its ID easily. The div should be in your page. You know its ID. You put your dynamic object inside.
0
 

Author Comment

by:cerub
ID: 34887873
"Generaly we need to get a référence on an object. Once you get this reference you can get its ID easily."

Could you possibly provide an example reference, please?
0
 
LVL 82

Expert Comment

by:leakim971
ID: 34887990
var myRef = document.getElementById("theDivIdIKnow").childNodes[1];

Open in new window


try 0 instead 1 too
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 82

Assisted Solution

by:leakim971
leakim971 earned 250 total points
ID: 34888082
another one, use getElementsByTagName("*")[0] instead childNodes[1]
0
 

Author Comment

by:cerub
ID: 34894616
Don't get me wrong but you still don't seem to know the names of the elements. You iterate them in order to learn their names.
0
 
LVL 2

Accepted Solution

by:
Aazmodeus earned 250 total points
ID: 34895976
If you create components dynamically, I guess, you can set their IDs and pass them as parameters to a view. I don't really remember how to do that in ASP.NET. But in MVC you can add them into page Model or into ViewData dictionary and then call a javascript function using the passed parameters. Or you can simply create your own class where these ids will be defined as constants, which should be legit for both plain ASP.NET and MVC.

<script>
 //id is passed as a field DynamicElementID of view Model
 var obj = document.getElementById('<%=Model.DynamicElementId%>');
 //id is defined as a constant or a static field in ViewParams class
 var obj = document.getElementById('<%=ViewParams.DynamicElementId%>');
</script>

Open in new window

0
 

Author Closing Comment

by:cerub
ID: 34896044
Thank you! It seems there are two main ways of looking at this problem so I think it is only fair to split the points.

Thanks for the help.
0
 
LVL 82

Expert Comment

by:leakim971
ID: 34896053
>Don't get me wrong but you still don't seem to know the names of the elements.
The question is : Do you really need the name ? Or do you need a reference to work with the objects ?

>You iterate them in order to learn their names.
No iteration in my code, we get the first node having a tag... and I'm not sure a function like $Find don't use in its black chamber one loop (or more) or something not linear.

0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now