Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117

    DataGrid: intestazione prima riga

    Ho un datagrid che contiene molte righe e che non posso paginare... è
    possibile visualizzare l'intestazione ogni x righe per facilitarne la
    lettura?

    thanks

  2. #2
    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?

  3. #3
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    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

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: DataGrid: intestazione prima riga

    Originariamente 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?

    thanks
    Dopo aver bisticciato col computer l'ho fatto Cioè, 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

  5. #5
    te hai
    codice:
    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
    l'ho scritto in italiano ... spero sia più semplice. purteoppo dal tuo esempio non ho capito se hai capito


  6. #6
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    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???

    }



    }

  7. #7
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    please help me

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da valeria75
    please help me
    codice:
            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

  9. #9
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    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();
    
    			
    				}

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.