Проект веб-приложения тег @Reference - PullRequest
0 голосов
/ 28 апреля 2009

Я преобразую проект веб-сайта в проект веб-приложения в VS 2008, и я наткнулся на запрос, касающийся динамической загрузки пользовательских элементов управления.

<%@ Reference Control="~/UserControls/MyUserControl.ascx" %>

и затем на странице, которую я просто назвал ...

Dim ucSupplierDetails As New ASP.usercontrols_myusercontrol_ascx

К сожалению, при обновлении до проекта веб-приложения эта строка больше не действительна. Есть ли альтернатива?

Ответы [ 2 ]

3 голосов
/ 02 декабря 2009

Для динамической загрузки пользовательских элементов управления здесь есть альтернатива:

Dim ucSupplierDetails As New UserControl 
ucSupplierDetails.LoadControl("~/UserControls/MyUserControl.ascx")
placeholder.Controls.Add(ucSupplierDetails)

РЕДАКТИРОВАТЬ: Вот второй вариант, поместите ваши пользовательские элементы управления в пространство имен вручную:

Namespace MyUserControlNamespace

    Public Class MyUserControl Inherits System.Web.UI.UserControl

    End Class

End Namespace

Не забудьте изменить объявление класса вашего пользовательского элемента управления (атрибут Inherits в последней строке):

<%@ Control Language="VB" AutoEventWireup="true" 
    CodeFile="MyUserControl.ascx.vb" 
    Inherits="MyUserControlNamespace.MyUserControl" %>

И теперь вы можете получить к ним доступ по его пространству имен:

Dim ucSupplierDetails As New MyUserControlNamespace.MyUserControl
2 голосов
/ 02 декабря 2009

Попробуйте использовать <%@ Import namespace="Namespace.Of.Your.Usercontrol" %> вместо

...