Ecco il codice che utilizzo.
L'ho preso fra gli esempi in questo sito e funziona tutto perfettamente tranne che per TemplateColumn che mi fà vedere la colonna con il CheckBox nella griglia ma non è valorizzato. Ho provato anche con un TextBox ma niente da fare.
Tieni presente che il controllo utente CheckBox.ascx contiene solo il ChechBox e niente altro; non ho aggiunto nessun codice nel Load.
<font size="2">
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
carica_griglia()
End Sub
Sub carica_griglia()
griglia.Dispose()
strSQL = "select * from tabella"
Conn_Database()
DtAdpRecord = New SqlClient.SqlDataAdapter(strSQL, ConnSQL)
DtsRecord = New DataTable("tabella")
DtAdpRecord.Fill(DtsRecord)
griglia.DataSource = DtsRecord
formatta_griglia()
griglia.DataBind()
DtAdpRecord.Dispose()
DtsRecord.Dispose()
Disconn_Database()
End Sub
Sub formatta_griglia()
With griglia
.AutoGenerateColumns = False
.AllowSorting = True
.AllowPaging = True
.PageSize = 30
.Columns.Add(AddGhostColumn(DtsRecord.Columns("campo1")))
.Columns.Add(AddSortColumn("campo2", DtsRecord.Columns("campo2")))
.Columns.Add(AddTemplateColumn("campoCheck", DtsRecord.Columns("campoCheck"), "CheckBox.ascx"))
End With
End Sub
Private Function AddGhostColumn(ByVal Colonna As DataColumn) As Object
Dim newcol As New BoundColumn
With newcol
.DataField = Colonna.ColumnName
.Visible = False
End With
AddGhostColumn = newcol
End Function
Private Function AddSortColumn(ByVal Etichetta As String, ByVal Colonna As DataColumn) As Object
Dim newcol As New BoundColumn
With newcol
.DataField = Colonna.ColumnName
.SortExpression = Colonna.ColumnName
.Visible = True
End With
AddSortColumnLeft = newcol
End Function
Private Function AddTemplateColumn(ByVal Etichetta As String, ByVal Colonna As DataColumn, ByVal NomeTemplate As String) As Object
Dim CT_new As New TemplateColumn
CT_new.HeaderText = "campoCheck"
CT_new.Visible = True
CT_new.ItemTemplate = Page.LoadTemplate("CheckBox.ascx")
AddTemplateColumn = CT_new
End Function
</font>
Grazie e ciao.