как использовать метод FindControl с ASPxGridView

#c# #devexpress

#c# #devexpress

Вопрос:

Я хочу получить ASPxGridView внутри другого ASPxGridView, я пытался сделать это следующим образом :

 ASPxGridView3 = (ASPxGridView)ASPxGridView2.FindControl("ASPxGridView3");
  

Но, очевидно, что это не работает, иначе я бы не просил помощи ^^.
Я попытался поместить ASPxGridView перед всем этим, но, похоже, это ничего не дает.
ASPxGridView3 просто заканчивается как null. Я на 100% уверен, что имена ASPxGridView2 и ASPxGridView3 верны, а также, что я уверен, что ASPxGridView2 имеет ASPxGridView3 в своем шаблоне редактирования

Ответ №1:

Поскольку ASPxGridView предоставляет множество контейнеров шаблонов, вы должны использовать методы, специфичные для этих контейнеров, чтобы найти элемент управления, находящийся в контейнере шаблона. Например, если элемент управления расположен в контейнере DetailRowTemplate, вам следует использовать ASPxGridView.FindDetailRowTemplateControl. Чтобы определить, какой метод использовать в вашей конкретной ситуации, пожалуйста, обратитесь к следующим разделам справки:

Элементы сетки, поддерживающие шаблоны
Доступ к элементам управления, содержащимся в шаблонах
Таблица элементов: Шаблоны

Также может быть очень важно, в какой момент вы пытаетесь получить ссылку на элемент управления, находящийся в элементе управления шаблона. Стандартный способ — обработать событие HtmlRowCreated и проверить наличие свойства e.RowType в этом обработчике событий. Этот подход будет работать, если элемент управления template4 находится в контейнере row ~ template. Если элемент управления находится внутри строки состояния, строки заголовка — используйте предварительный просмотр ASPxGridView и события BeforeGetCallbackResult.