Hej Hej igen.. Jag har problem att förstå vad du försöker göra. Du beskriver hur du har börjat implementera det. Datastruktur från din SP och lite exempel data kanske gör det lättare att förstå. hej,Databind för iTemplate i runtime
Jag försöker göra en dynamisk datagrid. Utifrån resultatet av min SP får jag ett antal datacolumner och reader. Utifrån dessa vill jag skapa min datagrid.
Tex så använder vi oss av HeaderText är column namn, om en motsvarande colum namn finns med ändelsen "_Arg" vet jag att Kontrollen skall vara en länkknapp, saknas column "_Arg" ska kontrollen vara av typen label (detta är helt enkelt för att öka flexibiliteten och från sql sidan kunna skapa olika vyer osv).
Det är inga problem att skapa och binda en BoundColumn.
<code>
...
If myCol._UseLabelCtrl = True Then
colBound = New BoundColumn
colBound = New System.Web.UI.WebControls.BoundColumn
colBound.HeaderText = myCol._ColumnName
colBound.DataField = myCol._DataField
colBound.Visible = myCol._Visible
colBound.ItemStyle.Wrap = False
colBound.HeaderStyle.Height = New Unit(30)
DataGrid1.Columns.Add(colBound)
Else
...
</code>
Problemet kommer när jag ska skapa min linkbutton som en TemplateColumn eftersom
jag vill kunna ange CommandName och CommandArgument.
Jag har lyckats skapa själva kontrollen, problemet är att binda kontrollen så att den får
rätt text, commangarg och commandname värden.
<code>
...
Else 'Use linkbutton
Dim template As New TemplateColumn
template.ItemTemplate = New ButtonTemplate
template.HeaderText = myCol._ColumnName
DataGrid1.Columns.Add(template)
End if
</code>
Här är själva ButtonTemplate koden. Problemet är alltså hur jag ska göra för att binda kontrollen
med rätt data från datakällan som jag senare använder när jag kör datagid.datasource = ds..
<code>
Public Class ButtonTemplate
Implements ITemplate
Public Sub InstantiateIn(ByVal ctr As Control) Implements ITemplate.InstantiateIn
Dim _Button As New LinkButton
_Button.CommanName = ''
_Button.CommandArgument = ''
_Button.Text = "'<%# DataBinder.Eval(container.DataItem, ""registration_error"")%>'"
ctr.Controls.Add(_Button)
End Sub
End Class
</code>
Idéer mottages tacksamt!
Tack!
MarcusSv: Databind för iTemplate i runtime
Är det absolut ingen som har någon som helst idé om hur man skulle kunna få till bindningen av resp. kontroll i griden?
mvh
MarcusSv:Databind för iTemplate i runtime
Sv: Databind för iTemplate i runtime
förenklar frågan och ställer den så här istället:
Hur skapar och lägger man till en linkbutton kontroll dynamiskt, i run time, till en datagrid?
och binder kontrollen till rätt datakälla?
Hälsningar
MarcusM