Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Чтобы установить свойство элемента управления внутри LayoutTemplate, просто используйте метод FindControl в элементе управления ListView.
var control = (MyControl)myListView.FindControl("myControlId");
Используйте метод FindControl на каждом ListViewItem.
var control = (MyControl)Item.FindControl("yourControlId");
Ответ на этот вопрос был дан в этом вопросе о переполнении стека:
Доступ к элементу управления внутри LayoutTemplate ListView
См. Комментарий к принятому ответу от tanathos.
I знаю, что этот вопрос был задан более года назад, но это один из первых результатов по поисковому запросу, который я здесь встречал, поэтому я хотел оставить ответ для всех, кто наткнулся на него.
Макет создается и запускает событие LayoutCreated, в котором говорится, что макет был создан в системе.
Затем вы можете использовать listview.FindControl, чтобы получить ссылку на этот элемент управления.