Если вы хотите использовать свой веб-элемент управления динамически, при использовании других элементов управления .net, таких как текстовое поле, метка и т. Д., Вам необходимо выполнить следующие действия.
(1) Добавьте свойство ClassName
в директиву управления, как показано ниже (в файле ascx)
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="CustomControl.ascx.cs"
Inherits="CustomControl" ClassName="CustomControl" %>
Примечание: Убедитесь, что оба значения ClassName
& Inherits
совпадают с именами классов в файле CS.
(2) Добавьте директиву Reference
на страницу, где вы хотите динамически использовать свой веб-элемент управления
<%@ Reference Control="~/usercontrol/CustomControl.ascx" %>
Примечание: директива Reference
отличается от директивы Register
.
(3) Теперь вы можете динамически добавлять свой пользовательский элемент управления в любом месте на вашей странице, как показано ниже
ASP.CustomControl cuCtrl = (ASP.CustomControl)LoadControl("~/usercontrol/CustomControl.ascx");
//add dynamically created custom control to an existing panel or any container control on your page
pnlDemo.Controls.Add(cuCtrl);
Примечание: Вы всегда можете включить пространство имен ASP
в using
;)
После этого вы не должны столкнуться с какими-либо проблемами при публикации, даже если выбрана опция Allow this precomplied site to be updatable
.