2008-11-20 4 views
7

У меня возникла ситуация, когда мне нужно работать с datagrid и динамически добавлять столбцы в PageInit, поскольку сетка имеет несколько условных запросов, которые она должна обрабатывать. Я легко перемещаюсь с BoundColumns и ButtonColumns, это легко. Проблема заключается в создании TemplateColumn через код. Я нашел здесь примеры создания пользовательского класса, который динамически добавляет элементы управления, создавая класс, который использует реализацию ITemplate. Это работает, однако, я борюсь с тем, как элементы привязки данных.Столбец ITemplate и DataGrid в Codebehind

В моей сетке я бы использовал <% = DataBinder.Eval (Container.DataItem, "MyValue")%> или аналогичный, но здесь это не вариант. Контейнер, когда внутри ITemplate также не имеет свойства элемента данных, поэтому я не могу его привязать. У кого-нибудь есть советы или ссылки, которые могут помочь, я просто не нахожу правильные вещи в Google.

ответ

8

Вы можете подключить обработчик событий к событию DataBinding элементов управления, созданных в ITemplate.InstantiateIn, как в this MSDN Article. Отправителем будет элемент управления, а свойством NamingContainer будет DataGridItem, который имеет ссылку на DataItem, который вы можете использовать для получения любых необходимых данных.

+0

Удивительный! Это статья, которую я искал. Какая главная PITA, чтобы это сделать .... – 2008-11-21 06:42:05