Ser ni nått fel på denna? Näe det där ser inte rätt ut. Du får nog ta bort första raden, speciellt om det är en loop. Sen måste även objDT vara en cell i din grid. Vad är det för fel du får eller visas bara inget? Tommy,ButtonColumn
Dim myButtonColumn As ButtonColumn
myButtonColumn = New ButtonColumn
myButtonColumn.ButtonType = ButtonColumnType.PushButton
myButtonColumn.CommandName = "Delete_Item"
myButtonColumn.HeaderText = "Ta Bort"
objDT.Columns.Add("Ta Bort", GetType(new buttonColumn(myButtonColumn))Sv: ButtonColumn
Sen borde det väl bara stå objDt.columns.add(mybuttoncolumn) - för den är ju redan fylld med de egenskaper du angett.Sv: ButtonColumn
Vad du försöker göra är att skapa en ButtonColumn direkt i ditt DataTable iställer för i din DataGrid. ButtonColumn klassen ärver ifrån DataGridColumn vilket ger en ledtråd om att det är i din grid som du skall definera den.
(1) Kolumnerna i gridden bestämmer <b>hur</b> informationen skall presenteras (t.ex att då varje post skall ha en knapp).
(2) Ditt DataTable är en den information som skall <b>visas</b> i din grid.
Här har du ett exempel
<code>
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
Dim Info As DataTable = New DataTable
Info.Columns.Add("Kolumn1")
Info.Columns.Add("Kolumn2")
Info.Rows.Add(New Object() {"Test1", "Test1"})
Info.Rows.Add(New Object() {"Test2", "Test2"})
Info.Rows.Add(New Object() {"Test3", "Test3"})
Dim Column1 As BoundColumn = New BoundColumn
Column1.DataField = "Kolumn1"
Column1.HeaderText = "Kolumn1"
DataGrid1.Columns.Add(Column1)
Dim Column2 As BoundColumn = New BoundColumn
Column2.DataField = "Kolumn2"
Column2.HeaderText = "Kolumn2"
DataGrid1.Columns.Add(Column2)
Dim myButtonColumn As ButtonColumn
myButtonColumn = New ButtonColumn
myButtonColumn.ButtonType = ButtonColumnType.PushButton
myButtonColumn.CommandName = "Delete_Item"
myButtonColumn.Text = "Ta Bort"
DataGrid1.Columns.Add(myButtonColumn)
DataGrid1.AutoGenerateColumns = False
DataGrid1.DataSource = Info
DataGrid1.DataBind()
End If
End Sub
</code>
Eller exakt samma sak fast med VB:s With kommando för att spara på lite skrivande
<code>
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
Dim Info As DataTable = New DataTable
With Info.Columns
.Add("Kolumn1")
.Add("Kolumn2")
End With
With Info.Rows
.Add(New Object() {"Test1", "Test1"})
.Add(New Object() {"Test2", "Test2"})
.Add(New Object() {"Test3", "Test3"})
End With
Dim Column1 As BoundColumn = New BoundColumn
With Column1
.DataField = "Kolumn1"
.HeaderText = "Kolumn1"
End With
DataGrid1.Columns.Add(Column1)
Dim Column2 As BoundColumn = New BoundColumn
With Column2
.DataField = "Kolumn2"
.HeaderText = "Kolumn2"
End With
DataGrid1.Columns.Add(Column2)
Dim myButtonColumn As ButtonColumn = New ButtonColumn
With myButtonColumn
.ButtonType = ButtonColumnType.PushButton
.CommandName = "Delete_Item"
.Text = "Ta Bort"
End With
DataGrid1.Columns.Add(myButtonColumn)
DataGrid1.AutoGenerateColumns = False
DataGrid1.DataSource = Info
DataGrid1.DataBind()
End If
End Sub
</code>
//Andreas