Добавить элементы управления динамически в список - PullRequest
0 голосов
/ 19 января 2010

У меня есть просмотр списка asp.net.Заполняющие его данные сортируются по группам, и я использую некоторый код в шаблоне элемента списка, который по существу проверяет, изменилось ли поле группировки в данных, и если да, то печатает новую строку с заголовком, поэтомуэто выглядит примерно так:

<ItemTemplate>
<%# AddGroupingRowIfWPHasChanged() %>

    <tr id="row" class="GridViewRow" runat="server" >
    <td valign="top" align="left"  ><%# Eval("item1") %></td>
.......
</itemTemplate>

Это прекрасно работает.Однако теперь мне нужно добавить кнопку в поле заголовка группы, и я не могу заставить это работать.Очевидно, что эту кнопку нужно добавлять, только если заголовок изменился, но метод AddGroupingRowIfWPHasChanged (), по-видимому, не имеет доступа к текущему ListviewItem, поэтому я не могу добавить элемент управления.динамически добавлять элемент управления в представление списка, независимо от того, является ли он заголовком группы или нет?

Ответы [ 4 ]

1 голос
/ 19 января 2010

Может быть проще переопределить событие ItemInserting в коде позади и сделать это оттуда

1 голос
/ 19 января 2010

Использовать заполнитель?

.aspx

<asp:Placeholder id="plhControlHolder" runat="server" />

код-за

' ** use FindControl if instead a databound event, otherwise you could skip.
Dim plcControlHolder as PlaceHolder = e.Row.FindControl("plcControlHolder") 
Dim btnDynamic As New Button
btnDynamic.Id = "MyButton"
plcControlHolder.Controls.Add(btnDynamic)
0 голосов
/ 20 января 2010

Создайте UserControl для включения вместо вызова метода AddGroupingRowIfWPHasChanged (). Переопределить рендер (). Используйте логику, которая в настоящее время находится в AddGroupingRowIfWPHasChanged (), чтобы отобразить элемент управления, если группа изменилась; в противном случае визуализируйте пустую строку.

0 голосов
/ 19 января 2010

Попробуйте использовать GroupTemplate и GroupSeparatorTemplate вместо того, чтобы пытаться поместить все это в ItemTemplate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...