El DataBinder.Eval(e.Item.DataItem, "campo") te da acceso a los datos que se van leyendo en cada iteración. Entonces lo que supongo que se debería hacer es crear la columna a partir del dato.
Te pongo un ejemplo de como cargo yo un repeater haber si te podría valer esta solución o debemos buscar otra:
Código PHP:
Private Sub repeater1_DataBinder(ByVal sender As System.Object, ByVal e As RepeaterItemEventArgs) Handles repeater1.ItemDataBound
If Not DataBinder.Eval(e.Item.DataItem, "id") Is Nothing Then
Dim celda As TableCell
Dim fila As TableRow = New TableRow
celda = New TableCell
celda.Width.Percentage(15)
celda.CssClass = "interiortabla"
celda.Text = Convert.ToDateTime(DataBinder.Eval(e.Item.DataItem, "fecha")).ToShortDateString
fila.Cells.Add(celda)
celda = New TableCell
celda.Width.Percentage(20)
celda.CssClass = "interiortabla"
Dim n As String = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "nomcliente"))
If n.Length >= 33 Then
celda.Text = n.Substring(0, 20) + "..."
celda.ToolTip = n
Else
celda.Text = n
End If
fila.Cells.Add(celda)
celda = New TableCell
celda.Width.Percentage(20)
celda.CssClass = "interiortabla"
celda.Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "asunto"))
If celda.Text.Length > 20 Then
celda.Text = celda.Text.Substring(0, 17) + "..."
celda.ToolTip = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "asunto"))
End If
fila.Cells.Add(celda)
celda = New TableCell
celda.Width.Percentage(20)
celda.CssClass = "interiortabla"
celda.Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "lugar"))
If celda.Text.Length > 20 Then
celda.Text = celda.Text.Substring(0, 17) + "..."
celda.ToolTip = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "lugar"))
End If
fila.Cells.Add(celda)
celda = New TableCell
celda.Width.Percentage(12)
celda.CssClass = "interiortabla"
celda.Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "nompersona"))
If celda.Text.Length > 15 Then
celda.Text = celda.Text.Substring(0, 12) + "..."
celda.ToolTip = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "nompersona"))
End If
fila.Cells.Add(celda)
celda = New TableCell
celda.Width.Percentage(12)
celda.CssClass = "interiortabla"
celda.Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "nomusuario"))
fila.Cells.Add(celda)
repeater1.Controls.Add(fila)
End If
End Sub