ti posto una valanga di codice e cerco di commentartelo meglio possibile

questo è il mio datagrid

<aspataGrid ID="dataGrid1" GridLines="Both" ItemStyle-HorizontalAlign="center" ItemStyle-Height="30" runat="server" BorderColor="black" Width="98%" AutoGenerateColumns="false"
ItemStyle-CssClass="nerotesto" HeaderStyle-Width="35%" HeaderStyle-HorizontalAlign="center" HeaderStyle-Font-Bold="true" HeaderStyle-Height="50" ShowHeader="true" ItemStyle-Wrap="false">
<columns>
<asp:templatecolumn ItemStyle-Width="12%" ItemStyle-HorizontalAlign="left" >
<itemtemplate>
<asp:Label id="numero" runat="server" Text='<%# Container.DataItem("numero") &"
"& Container.DataItem("tipologia")%>' />
</itemtemplate>
</asp:templatecolumn>
</columns>
</aspataGrid>


le template column che non sono mai statiche ma variano a seconda di alcuni parametri dati vengono generate dinamicamente all'interno della Sub Page_Load() .


questa porzione di codice è interna a un ciclo FOR
Dim tc2 As New TemplateColumn()
tc2.HeaderTemplate = New DataGridTemplate(ListItemType.Header , "", valoreGiornoTesto &"

"& giornoTemp &"
"& meseTemp &"
"& RIGHT(annoTemp,2), "")
tc2.ItemTemplate = New DataGridTemplate(ListItemType.Item, giornoTemp, dataTemporanea, "Singola")
DataGrid1.Columns.Add(tc2)


questa è la classe DataGridTemplate che viene richiamata per creare una nuova TemplateColumn

Private Class DataGridTemplate
Implements ITemplate
Dim templateType As ListItemType
Dim columnName As String
Dim TestoHeadervar As string
Dim tipologiaStanzaVar As string
Sub New(ByVal type As ListItemType, ByVal ColName As String, ByVal TestoHeader As String, ByVal tipologiaStanza as String)
templateType = type
columnName = ColName
TestoHeaderVar = TestoHeader
tipologiaStanzaVar = tipologiaStanza
End Sub

Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn
Dim lc As New Literal()
Dim lblLabel as New Label
Dim lblLabelHeader as New Label
Select Case templateType
Case ListItemType.Header
lblLabelHeader.Text = TestoHeaderVar
container.Controls.Add(lblLabelHeader)
Case ListItemType.Item
lblLabel.Text = StampaValore(TestoHeaderVar, tipologiaStanzaVar)
container.Controls.Add(lblLabel)
End Select
End Sub

Function StampaValore(data as object, tipologiaStanza as string) As String

' Questa funzione fa dei controlli (e qui avrei bisogno del parametro della TEmplateColumn "Statica" ) e sputa a video un numero o una gif

End Function
End Class

davvero non ho la più pallida idea di come poter fare