GridView Sort
-
giovedì 5 aprile 2012 16:31
In ambiente WEB l'oggetto GridView [Grd] mi inserisce automaticamente nei titoli delle colonne il nome del campo
Se lo sostituisco con una descrizione lo sort non è più attivo (per il momento la descrizione l'ho inserita come tooltip)
Inoltre non posso dimensionare le colonne
.............................................................................
Grd.AllowSorting = True
Grd.DataSource = oDT [ogetto DataTable]
Grd.DataBind()
............................................................................
naDimensioneColonneBrowse = Session("dimensionecolonnebrowse")
saTitoliColonneBrowse = Session("titolicolonnebrowse")
For Cnt = 0 To UBound(saTitoliColonneBrowse)
Grd.HeaderRow.Cells.Item(Cnt + 1).ToolTip = saTitoliColonneBrowse(Cnt)
Grd.HeaderRow.Cells.Item(Cnt + 1).Width = naDimensioneColonneBrowse(Cnt) ' non ha effetto
Next
..........................................................................arturo priolo
Tutte le risposte
-
giovedì 5 aprile 2012 18:08puoi settare il testo dell'intestazione colonna con HeaderText che è disponibile sia per templatecolumn che boundcolumn
-
giovedì 5 aprile 2012 19:10Postatore
Le colonne sono generate automaticamente oppure le hai dichiarate nel markup?
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
martedì 10 aprile 2012 06:37Le colonne sono generate automaticamente
arturo priolo
-
martedì 10 aprile 2012 07:47Postatore
Ti consiglio allora di dichiarare le colonne nel markup: in questo modo, per ogni bound field potrai impostare il titolo, l'espressione su cui effettuare il sort e la larghezza che desideri.
In generale, la dichiarazione esplicita delle colonne garantisce una flessibilità maggiore, quindi è solitamente la tecnica preferibile. Trovi un semplice esempio nella documentazione ufficiale: http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.boundfield.aspx.
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
venerdì 13 aprile 2012 14:29
Ho necessità di creare dinamicamente le colonne
Ma con il codice seguente mi crea un grid doppio (immagine allegata)
In ogni caso quando forzo l'headertext le colonne non risultano pùeditabili per lo sort
---------------------------------------------
naDimensioneColonneBrowse = Session("dimensionecolonnebrowse") saTitoliColonneBrowse = Session("titolicolonnebrowse") saCampiBrowse = Session("campibrowse") For Cnt = 0 To UBound(saTitoliColonneBrowse) Dim oField As New BoundField() oField.DataField = saCampiBrowse(Cnt) oField.HeaderText = saTitoliColonneBrowse(Cnt) Grd.Columns.Add(oField) Next Grd.DataSource = oDT
Grd.DataBind()
arturo priolo
-
venerdì 13 aprile 2012 14:33Postatore
Non c'è alcun immagine allegata.
Se cambi l'HeaderText, devi impostare la proprietà SortExpression sul nome del campo su cui effettuare l'ordinamento.
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
venerdì 13 aprile 2012 15:39
OK per la proprietà sortexpressionResta il fatto che se genero dinamicamente le colonne e poi associo al grid un datatable mi genera un grid raddoppiato (esempio)
codice :
saTitoliColonneBrowse = Session("titolicolonnebrowse") ' {"Codice","Descrizione"}
saCampiBrowse = Session("campibrowse") ' {"Codfor,ragcoc"}
For Cnt = 0 To UBound(saTitoliColonneBrowse)
Dim oField As New BoundField()
oField.DataField = saCampiBrowse(Cnt)
oField.HeaderText = saTitoliColonneBrowse(Cnt)
Grd.Columns.Add(oField)
Next
Grd.DataSource = oDT ' datatable generata con il comando sql : "select codfor,ragsoc from fornit"Grd.DataBind()
arturo priolo
-
venerdì 13 aprile 2012 16:15Postatore
Devi impostare la proprieà AutoGenerateColumns della GridView su false.Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva- Contrassegnato come risposta arcturus160340 venerdì 13 aprile 2012 16:59

