Ho un datagrid che contiene molte righe e che non posso paginare... è
possibile visualizzare l'intestazione ogni x righe per facilitarne la
lettura?
thanks
Ho un datagrid che contiene molte righe e che non posso paginare... è
possibile visualizzare l'intestazione ogni x righe per facilitarne la
lettura?
thanks
devi agire sul datatable che contiene tutti i dati prima di fare il databind. esempio ...
_ te lo scorri ...
_ ogni X righe aggiungi una riga alla posizione successiva alla tua e gli metti un valore che te riconosci.
_ nell'itemdatabound verifichi il valore e ripeti le intestazioni
chiaro il concetto?
il concetto è chiaro, il problema è che io mi creo il datatable, costruendolo da zero, ed arrivando ad un
praticamente, recupero i dati da un'altro datatable e mi costruisco le intestazioni delle mie colonne
foreach (DataRow row in DsDati.Tables["Persone"].Rows)
{
Planning.Columns.Add(row["RagioneSociale"].ToString());
}
quindi i nomi delle persone
...
ed infine riempio le righe ... arrivato a questo datatable
DsDati.Tables["Planning"]
ora, se non ho capito male, devo prendere la riga 0 (intestazione) ed inserirla, ad esempio, ogni 20 righe... a livello teorico è ok, ma a livello pratico?
grazie
Dopo aver bisticciato col computer l'ho fattoOriginariamente inviato da valeria75
Ho un datagrid che contiene molte righe e che non posso paginare... è
possibile visualizzare l'intestazione ogni x righe per facilitarne la
lettura?
thanksCioè, ho fatto un esempio funzionante
. Ma, a parte che mi sembra a dir poco esotica, una simile soluzione, e visto che l'ho fatto in puro basic, non è che mi risponderai che lavori in c# e che vuoi la traduzione?
![]()
Perchè così butto tutto dalla finestra![]()
ciao![]()
Pietro
te hai
l'ho scritto in italiano ... spero sia più semplice. purteoppo dal tuo esempio non ho capito se hai capitocodice:datatable1 -> quello coi dati datatable2 -> quello vuoto contatore -> associalo a 0 per ogni riga in datatable1 se contatore = x allora in datatable2 inseirisci la nuova riga con le instestazioni dentro i campi altrimenti prendi la riga e la copi qua dentro in datatable2 fine_se fine_per ora associ al datagrid il datatable2![]()
![]()
![]()
sto cercando di applicare la tua soluzione
int contatore = 0;
foreach (DataRow row in DsDati.Tables["Planning"].Rows)
{
if (contatore = 20)
{
//ma come faccio in modo di inserire solo le intestazioni di colonna???
}
}
please help me
Originariamente inviato da valeria75
please help mecodice:Dim dt As DataTable = Libreria.GetDataTable(StringaConnessione, "SELECT top 100 * FROM comuni ORDER BY [ID]") Dim dt1 As New DataTable Dim i% For i = 0 To dt.Columns.Count - 1 dt1.Columns.Add(dt.Columns(i).Caption, GetType(String)) Next Dim c% = 0 For Each r As DataRow In dt.Rows c += 1 If c > 5 Then c = 0 Dim dr1 As DataRow = dt1.NewRow For i = 0 To dt1.Columns.Count - 1 dr1(i) = dt1.Columns(i).Caption Next dt1.Rows.Add(dr1) c += 1 Dim dr As DataRow = dt1.NewRow For i = 0 To dt1.Columns.Count - 1 dr(i) = r(i) Next dt1.Rows.Add(dr) Else Dim dr As DataRow = dt1.NewRow For i = 0 To dt1.Columns.Count - 1 dr(i) = r(i) Next dt1.Rows.Add(dr) End If Next Me.DataGrid1.DataSource = dt1 Me.DataGrid1.DataBind()
Pietro
in fase di compilazione non ho errori, ma visualizzo la pagina bianca, senza nessun datagrid
(mentre il codice iniziale visualizzava correttamente i dati nel datagrid)
codice:// duplico il datatable per creare le intestazioni ogni X righe DataTable StartPlanning = DsDati.Tables["Planning"]; DataTable TmpPlanning = null; for (int i=0; i==StartPlanning.Rows.Count; i++) { TmpPlanning.Columns.Add(StartPlanning.Columns[i].Caption, Type.GetType("string")); } int c=0; foreach (DataRow r in StartPlanning.Rows) { c=c+1; if(c>5) { c=0; DataRow dr1 = TmpPlanning.NewRow(); for (int i=0; i==TmpPlanning.Columns.Count-1; i++) { dr1[i] = TmpPlanning.Columns[i].Caption; } TmpPlanning.Rows.Add(dr1); c = c+1; DataRow dr = StartPlanning.NewRow(); for (int i=0; i==TmpPlanning.Columns.Count-1; i++) { dr[i] = r[i]; } TmpPlanning.Rows.Add(dr); } else { DataRow dr = TmpPlanning.NewRow(); for (int i=0; i==TmpPlanning.Columns.Count-1; i++) { dr[i] = r[i]; } TmpPlanning.Rows.Add(dr); } MyDataGrid.DataSource = TmpPlanning.DefaultView; MyDataGrid.DataBind(); }
la traduzione in c# mi pare giusta (ma io non conosco bene il c#). Dopotutto, io ho usato la prima tabella che ho trovato e l'ho collaudato, selezionando persino le righe di intestazione.
Ma sei sicura che la tabella StartPlanning abbia righe? :master:
![]()
![]()
Pietro