Ответ 1
Чтобы установить свойство элемента управления, находящегося внутри шаблона LayoutTemplate, просто используйте метод FindControl в элементе управления ListView.
var control = (MyControl)myListView.FindControl("myControlId");
Как установить свойство пользовательского элемента управления в ListView
LayoutTemplate
из кода?
<asp:ListView ...>
<LayoutTemplate>
<myprefix:MyControl id="myControl" ... />
</LayoutTemplate>
...
</asp:ListView>
Я хочу сделать это:
myControl.SomeProperty = somevalue;
Обратите внимание, что мой элемент управления не находится в ItemTemplate
, он находится в LayoutTemplate
, поэтому он не существует для всех элементов, он существует только один раз. Поэтому я должен иметь доступ к нему один раз, а не для каждого связанного с данными элемента.
Чтобы установить свойство элемента управления, находящегося внутри шаблона LayoutTemplate, просто используйте метод FindControl в элементе управления ListView.
var control = (MyControl)myListView.FindControl("myControlId");
var control = (MyControl)myListView.FindControl("myControlId");
Это будет работать, но убедитесь, что вы сделаете это после привязки данных, или LayoutTemplate не будет создан, что приведет к ошибке.
Используйте метод FindControl для каждого объекта ListViewItem.
var control = (MyControl)Item.FindControl("yourControlId");
В этом вопросе был дан ответ:
Доступ к элементу управления внутри шаблона LayoutTemplate в ListView
См. комментарий к принятому ответу tanathos.
Я знаю, что это было задано более года назад, но это один из первых результатов для поискового термина, который я использовал для этого, поэтому я хотел оставить ответ для всех, кто наткнулся на него.
Макет создается и запускает событие LayoutCreated, в котором говорится, что макет был создан в системе.
Затем вы можете использовать listview.FindControl для получения ссылки на этот элемент управления.