Sideway
output.to from Sideway
Draft for Information Only

Content

Web Forms Control Identification
  Note
 The Naming Container
  Note
 Using the NamingContainer Property
  Note
 Referencing Controls
 See Also
 Concepts
 Sources and References

Web Forms Control Identification

Every control on an ASP.NET Web page must be uniquely identifiable. Generally, you assign a value to a control's ID property to uniquely identify it. This value becomes the instance name of the control — that is, the name by which you can refer to the control in code. For example, if you set the ID property of a TextBox control to Text1, you can reference the control in code as Text1.
A number of data-bound controls, including the DataList, Repeater, GridView, FormView, and DetailsView controls, act as containers for other (child) controls. When these controls run, they generate multiple instances of the child control. For example, if you create a DataList template with a Label control in it, when the page runs, there are as many instances of that Label control in the page as there are records in the DataList control's data source.

Note

Controls that use templates, such as the DataList and Repeater controls, host template objects. For example, when the DataList control runs, it creates multiple instances of the DataListItem class. These template objects in turn contain individual controls such as labels, text boxes, buttons, and so on.
Because controls can be instantiated multiple times on the same page, and because you can reuse control names on different pages, the ASP.NET page framework provides mechanisms to ensure that controls on the page and in your application have unique identifiers. It also provides you with ways to find these individual controls so that you can manipulate them in your own code.

The Naming Container

Controls that can act as containers for other controls generate a naming container, or an ID namespace, for their child controls. By providing this naming container, controls can guarantee that ID attributes of their child controls are unique within the entire application. (Controls generate a naming container by implementing the INamingContainer interface.) When child controls are created at run time, the naming container is combined with the child control's ID property to create the value of the UniqueID property of each child control. The UniqueID property therefore becomes a fully qualified identifier for a control, referencing its naming container as well the controls' individual ID value.
In the example from above, the multiple instances of the Label control are created within the naming container — the namespace — of the parent DataList control. The UniqueID property of each Label control will reflect this namespace, which will have a format something like DataList1:_ctl:MyLabel, DataList1:_ct2:MyLabel, and so on.

Note

Do not write code that references controls using the value of the generated UniqueID property. You can treat the UniqueID property as a handle (for example, by passing it to a process), but you should not rely on it having a specific structure.
In addition to each container control providing a naming container for its child controls, the page itself also provides a naming container for all of its child controls. This creates a unique namespace within the application for all the controls on that page.

Using the NamingContainer Property

Child controls can reference their naming container via the NamingContainer property. This property returns an object of type Control that you can cast to the appropriate DataList control, DataListItem object, and so on.
Referencing the naming container is useful when you need access from a child control to a property of the container control. For example, in a handler for a child control's DataBinding event, you can access the DataItem object by getting it from the naming container.

Note

The NamingContainer property does not necessarily reference the same control as the Parent property. For example, in a Repeater control, you might have an item template containing a table that in turn contains a Label control. The parent control of the label is a table cell (for example, a HtmlTableCell object), but its naming container is the DataListItem object, because it is the DataListItem that defines the namespace for the Label control, not the table.

Referencing Controls

If your page contains controls that are generated at run time, such as those in a template for the DataList, Repeater, or GridView controls, you cannot directly reference them by their ID, because the ID is not unique. However, there are various ways to find individual controls in the page. For details, see Accessing ASP.NET Controls Programmatically.

See Also

Concepts

Web Forms Control ID Resolution

Sources and References

  • https://docs.microsoft.com/en-us/previous-versions/aspnet/1d04y8ss(v=vs.100)

©sideway

ID: 211000017 Last Updated: 10/17/2021 Revision: 0 Ref:

close

References

  1. Active Server Pages,  , http://msdn.microsoft.com/en-us/library/aa286483.aspx
  2. ASP Overview,  , http://msdn.microsoft.com/en-us/library/ms524929%28v=vs.90%29.aspx
  3. ASP Best Practices,  , http://technet.microsoft.com/en-us/library/cc939157.aspx
  4. ASP Built-in Objects,  , http://msdn.microsoft.com/en-us/library/ie/ms524716(v=vs.90).aspx
  5. Response Object,  , http://msdn.microsoft.com/en-us/library/ms525405(v=vs.90).aspx
  6. Request Object,  , http://msdn.microsoft.com/en-us/library/ms524948(v=vs.90).aspx
  7. Server Object (IIS),  , http://msdn.microsoft.com/en-us/library/ms525541(v=vs.90).aspx
  8. Application Object (IIS),  , http://msdn.microsoft.com/en-us/library/ms525360(v=vs.90).aspx
  9. Session Object (IIS),  , http://msdn.microsoft.com/en-us/library/ms524319(8v=vs.90).aspx
  10. ASPError Object,  , http://msdn.microsoft.com/en-us/library/ms524942(v=vs.90).aspx
  11. ObjectContext Object (IIS),  , http://msdn.microsoft.com/en-us/library/ms525667(v=vs.90).aspx
  12. Debugging Global.asa Files,  , http://msdn.microsoft.com/en-us/library/aa291249(v=vs.71).aspx
  13. How to: Debug Global.asa files,  , http://msdn.microsoft.com/en-us/library/ms241868(v=vs.80).aspx
  14. Calling COM Components from ASP Pages,  , http://msdn.microsoft.com/en-us/library/ms524620(v=VS.90).aspx
  15. IIS ASP Scripting Reference,  , http://msdn.microsoft.com/en-us/library/ms524664(v=vs.90).aspx
  16. ASP Keywords,  , http://msdn.microsoft.com/en-us/library/ms524672(v=vs.90).aspx
  17. Creating Simple ASP Pages,  , http://msdn.microsoft.com/en-us/library/ms524741(v=vs.90).aspx
  18. Including Files in ASP Applications,  , http://msdn.microsoft.com/en-us/library/ms524876(v=vs.90).aspx
  19. ASP Overview,  , http://msdn.microsoft.com/en-us/library/ms524929(v=vs.90).aspx
  20. FileSystemObject Object,  , http://msdn.microsoft.com/en-us/library/z9ty6h50(v=vs.84).aspx
  21. http://msdn.microsoft.com/en-us/library/windows/desktop/ms675944(v=vs.85).aspx,  , ADO Object Model
  22. ADO Fundamentals,  , http://msdn.microsoft.com/en-us/library/windows/desktop/ms680928(v=vs.85).aspx
close

Latest Updated LinksValid XHTML 1.0 Transitional Valid CSS!Nu Html Checker Firefox53 Chromena IExplorerna
IMAGE

Home 5

Business

Management

HBR 3

Information

Recreation

Hobbies 8

Culture

Chinese 1097

English 339

Reference 79

Computer

Hardware 249

Software

Application 213

Digitization 32

Latex 52

Manim 205

KB 1

Numeric 19

Programming

Web 289

Unicode 504

HTML 66

CSS 65

SVG 46

ASP.NET 270

OS 429

DeskTop 7

Python 72

Knowledge

Mathematics

Formulas 8

Algebra 84

Number Theory 206

Trigonometry 31

Geometry 34

Coordinate Geometry 2

Calculus 67

Complex Analysis 21

Engineering

Tables 8

Mechanical

Mechanics 1

Rigid Bodies

Statics 92

Dynamics 37

Fluid 5

Fluid Kinematics 5

Control

Process Control 1

Acoustics 19

FiniteElement 2

Natural Sciences

Matter 1

Electric 27

Biology 1

Geography 1


Copyright © 2000-2024 Sideway . All rights reserved Disclaimers last modified on 06 September 2019