Пользовательский контроль с общедоступной собственностью в FormView

Я добавил пользовательский элемент управления в шаблон элемента представления формы, но я добавил общедоступное свойство в пользовательский элемент управления и не могу понять, как установить это свойство. Я пробовал следующее:

<uc1:OfacControl id="OfacControl1" runat="server" AssetEvictionId='<%# Bind("AssetEvictionId") %>' />

Но значение никогда не устанавливается правильно.

Я также пытался сделать это в коде формы в методе preRender следующим образом:

var assetEvictionIdHiddenField = (HiddenField)oFormView.FindControl("AssetEvictionIdHiddenField");
var OfacControl1 = (Ofac)oFormView.FindControl("OfacControl1");

if (OfacControl1 != null && assetEvictionIdHiddenField != null)
    OfacControl1.AssetEvictionId = Convert.ToInt32(assetEvictionIdHiddenField.Value);

Это тоже не работает.

Похоже, это проблема времени. Похоже, что элемент управления отображается в другое время, чем устанавливается значение. Если синтаксис привязки не работает, и я вынужден использовать код позади, какое событие представления формы я должен использовать для установки значения. Я также пробовал событие OnItemCreated. Это тоже не сработало.


person Jim Shaffer    schedule 16.04.2012    source источник


Ответы (1)


Кажется, вы пытаетесь установить элемент управления не в том месте. Вы должны установить его в Init.

Обзор жизненного цикла страницы ASP.NET гласит следующее:

Инициализация

Возникает после инициализации всех элементов управления и применения любых настроек скина. Событие Init отдельных элементов управления перед событием Init страницы . Используйте это событие для чтения или инициализации свойств элемента управления.

person Code Maverick    schedule 16.04.2012