Я сделал аналогичные реализации с использованием повторителя и добился успеха при следующем подходе:
Используйте шаблон декоратора, чтобы добавить «директивы отображения» к объекту, который вы привязываете к повторителю.В вашем примере я мог бы добавить флаги bool для ShowFullDob, ShowLastNameAsLink и ShowColumnX (для вашего необязательного столбца).
Когда вы извлекаете данные для отображения, преобразуйте объекты модели в новые декорированные объекты модели иустановите флаги bool в соответствии с текущим запросом.
Эта часть немного нелогична: в ItemTemplate вашего ретранслятора визуализируйте ALL данные, но используйте свои флаги bool дляустановите атрибут Visible (см. пример кода ниже).
<ItemTemplate>
<td runat="server" Visible='<%# (bool)DataBinder.Eval(Container.DataItem, "ShowFullDob") %>'>construct full DOB here</td>
<td runat="server" Visible='<%# !((bool)DataBinder.Eval(Container.DataItem, "ShowFullDob")) %>'>construct just the birth month/year here</td>
</ItemTemplate>
Возможно, другие SO могут предложить более элегантные способы реализации условных элементов в повторителе - если это так, я бы хотел их услышать!Однако, несмотря на то, что это немного некрасиво и жестко, оно выполняет свою работу.