Назначить объекты свойствам внутри каждого не работает - PullRequest
0 голосов
/ 30 апреля 2011

i для отображения списка моего userControl "GaleriaDetalhe" внутри для каждого оператора на странице asp.net. таким образом он возвращает мне эту ошибку:

Невозможно создать объект типа 'SKortal.ImageGalery.ImageGalery' из его строкового представления '<% getGaleria (g)%> "для свойства' DataSource '.

Как я могу напрямую назначить текущий объект foreach для свойства источника данных моего usercontrol? Как?

<%@ Register src="GaleriaDetalhe.ascx" tagname="GaleriaDetalhe" tagprefix="uc1" %>

<%  For Each g As ImageGalery In DataSource%>
<uc1:GaleriaDetalhe ID="GDetail" runat="server" DataSource="<% g %>" />
<% Next%>

Чтобы быть более точным, я притворяюсь, что знаю, как я могу назначить объекты свойствам в разметке?

Заранее спасибо,

Ответы [ 2 ]

1 голос
/ 30 апреля 2011

Вам нужно будет создать свои пользовательские элементы управления в коде и добавить их в PlaceHolder. Хитрость заключается в том, чтобы использовать Reference вместо Register (на странице ASPX), поскольку это позволяет создавать пользовательские элементы управления, как и любой другой объект, без необходимости Page.LoadControl (элементы управления отображаются внутри пространства имен ASP). Затем вы можете либо передать объекты в их конструктор, либо создать в них публичные свойства.

Мой пост в блоге здесь показывает шаги.

1 голос
/ 30 апреля 2011

Это неправильный способ создания списка. Эфир использует ретранслятор, эфир загружает контроль каждый раз, когда вам нужно на вашей лизе, используя Page.LoadControl("GaleriaDetalhe.ascx");

Используйте ретранслятор для отображения списка ваших элементов управления.

...