Newsgroup: it.comp.www.asp
Titolo: Custom DataGrid Column in asp.net

salve a tutti,
ho realizzato la seguente datagrid aggiungendo due colonne con la mia
formattazione personale. ho abilitato l'ordinamento, ma quando clicco
sulla nome della colonna "Valuta" invece di eseguire il SortCommand le
mi colonne spariscono rimanendo solo quelle create in automatico.
Inoltre, quelle create in automatico ricevono la formattazione sui dati
che avevo impostato per le mie due colonne personalizzate. come mai?
Qualcuno ha qualche idea?
ringrazio anticipatamente,
giancarlo
ps: ecco l'esempio che ho implementato
    Protected WithEvents btn As Button
    Protected WithEvents lbl As Label
    Protected WithEvents dg As DataGrid
    Private _table As System.Data.DataTable
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here
        If Not Page.IsPostBack Then
            BindData()
        End If
    End Sub
    Private Sub MakeData()
        Dim r As System.Data.DataRow
        _table = New System.Data.DataTable()
        _table.Columns.Add(New System.Data.DataColumn("Stringa",
GetType(System.String)))
        _table.Columns.Add(New System.Data.DataColumn("Intero",
GetType(Integer)))
        r = _table.NewRow()
        r(0) = "a"
        r(1) = 1
        _table.Rows.Add(r)
        r = _table.NewRow()
        r(0) = "b"
        r(1) = 2
        _table.Rows.Add(r)
        r = _table.NewRow()
        r(0) = "c"
        r(1) = 3
        _table.Rows.Add(r)
    End Sub
    Private Sub BindData()
        MakeData()
        AddColumns()
        Me.dg.AllowCustomPaging = True
        Me.dg.AllowPaging = True
        Me.dg.AllowSorting = True
        Me.dg.AutoGenerateColumns = True
        Me.dg.DataSource = _table
        Me.dg.DataBind()
    End Sub
    Private Sub AddColumns()
        Dim c1 As System.Web.UI.WebControls.BoundColumn = New
System.Web.UI.WebControls.BoundColumn()
        c1.DataField = _table.Columns(0).ColumnName
        c1.HeaderText = "Elemento"
        c1.ReadOnly = True
        c1.SortExpression = ""
        c1.DataFormatString = "elem. {0:F2}"
        Me.dg.Columns.Add(c1)
        Dim c2 As System.Web.UI.WebControls.BoundColumn = New
System.Web.UI.WebControls.BoundColumn()
        c2.DataField = _table.Columns(1).ColumnName
        c2.HeaderText = "Valuta"
        c2.ReadOnly = True
        c2.SortExpression = _table.Columns(1).ColumnName
        c2.DataFormatString = "{0:F2} Euro"
        Me.dg.Columns.Add(c2)
    End Sub
    Protected Sub dg_SortCommand(ByVal sender As System.Object, ByVal e
As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles
dg.SortCommand
        Me.lbl.Text &= "OnSort!"
    End Sub
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Qualcuno ha qualche idea?
Anch'io ho avuto lo stesso problema. Praticamente tutte le colonne create a
run-time "spariscono" quando c'e' un round-trip della pagina e rimangono
solo quelle create a design-time. Sparendo, non c'e' il collegamento con
l'evento della colonna (anch'io, coincidenza, dovevo fare il sort delle
colonne).
Ho risolto aggiungendo sempre le colonne anche nel Page_Load della pagina,
mediante un metodo centralizzato che aggiunge le colonne prendendo le
strutture a me necessarie (ad esempio dei datatable) dal viewstate.
Se c'e' qualche altro metodo, fatemelo sapere!
Pietro
--------------------------------
Inviato via 
http://usenet.libero.it