Domanda

Ho alcuni dati che devono essere presentati in forma di tabella con più sezioni.In particolare, Ogni sezione di dati è rotto (con intestazioni) per giorno.Questo è fondamentalmente una singola pagina affare, e non sarà mantenuto, quindi non ho voglia di mettere un sacco di sforzo in architettura.

Ho due tabelle.Le INTESTAZIONI e gli ARTICOLI.

INTESTAZIONI hanno un formato di:

date(datetime), type(tinyint), firstline(varchar), secondline(varchar)

ELEMENTI ha un formato di

id(int), date(datetime), type(tinyint), name(varchar), value1(int), 
    value2(int), value3(int)

Ho bisogno di dati simile a questo (primo e secondline sono dati inseriti, terza riga di testo statico, elemento linee dati inseriti):

1/1/2009
--------------------------------------------------------------------------
|                              [First line]                              |
--------------------------------------------------------------------------
|                             [Second line]                              |
--------------------------------------------------------------------------
|  Date |       Name            |   Value 1    |   Value 2   |  Value 3  |
==========================================================================
| [Date]|      [Name]           |  [Value 1]   |  [Value 2]  | [Value 3] |
--------------------------------------------------------------------------
| [Date]|      [Name]           |  [Value 1]   |  [Value 2]  | [Value 3] |
--------------------------------------------------------------------------
1/2/2009
--------------------------------------------------------------------------
|                              [First line]                              |
--------------------------------------------------------------------------
|                             [Second line]                              |
--------------------------------------------------------------------------
|  Date |       Name            |   Value 1    |   Value 2   |  Value 3  |
==========================================================================
| [Date]|      [Name]           |  [Value 1]   |  [Value 2]  | [Value 3] |
--------------------------------------------------------------------------
| [Date]|      [Name]           |  [Value 1]   |  [Value 2]  | [Value 3] |
--------------------------------------------------------------------------

Questo si ripete per tutti i giorni attualmente nel database, ogni giorno ha una sua propria tabella con intestazioni.Essi potranno anche essere filtrati in base al tipo.la pagina mostra solo le intestazioni e gli articoli del tipo specificato.Il tipo è un tinyint.

Quindi la domanda è, qual'è la migliore ASP.NET elementi da usare?DataList?GridView?E come faccio a inserire i dati da due tabelle in una intestazione/item formato?

EDIT:Scusate, ho dimenticato di dire che questo ha su Windows 2000/IIS5, così mi sono bloccato con ASP.NET 2.0 e non è possibile utilizzare 3.0 o 3.5 caratteristiche.

È stato utile?

Soluzione 5

Ok, ecco l'eventuale soluzione che mi è venuta in mente. Sono sicuro che questo non è il più efficiente o il più veloce, ma avevo solo bisogno di farlo e andare avanti con qualcos'altro.

Il mio primo passo è stato creare una classe base, che ho chiamato RowBase, questa era una classe astratta che implementava un metodo astratto chiamato GetRow (); Quindi ho derivato altre due classi, BannerRow e ItemRow da RowBase. Queste classi contengono campi con tutti i dati utilizzati nelle mie tabelle.

Ho quindi creato due DataTable e li ho riempiti con i risultati delle mie due query tramite un DataAdapter.

Successivamente, ho creato un Elenco < RowBase > e interagito sui database, creando un BannerRow o ItemRow a seconda del tipo di riga.

Successivamente, ho eseguito un Elenco < RowBase > .Sort, ordinamento per data e tipo di riga per assicurarmi che BannerRows passi la priorità su ItemRows.

Alla fine, ho creato una tabella posizionata sul mio modulo web, impostata su runat = " server " con un id = " maintable " e poi ho ripetuto la mia lista < RowBase > e chiamato GetRow su ogni RowBase.

BannerRow e ItemRow avevano ciascuno una sostituzione di GetRow () che restituiva un HtmlTableRow formattato per includere i dati nel formato corretto. Quindi, ho usato una logica condizionale per inserire le righe di intestazione per i dati ItemRow tutti elaborati.

Questa è una variante dell'idea di Rob e Ben, ma includeva molto più il massaggio dei dati, quindi ho dato entrambi i voti, ma mi sto accreditando la risposta.

Altri suggerimenti

Dai un'occhiata a asp: table. È possibile aggiungere a livello di codice le righe e le colonne in alcune iterazioni condizionali nidificate nel codice.

Vorrei raccomandare di restituire i dati come XML e di utilizzare un XSLT per compilare il rapporto. Altrimenti dovrai usare GridView o ripetitori nidificati.

Se il modello vale, sempre con lo stesso numero di linee, etc.Un ripetitore può essere la vostra scommessa migliore e dare un maggiore controllo su come il layout si presenta sullo schermo.

Posiziona un <asp:Table> sulla pagina e crealo dal codice dietro.

Utilizza il parametro colspan per le colonne (celle) in quanto ciò ti consente di creare voci che si estendono su più colonne per le righe necessarie.

Per la tua app qui sopra, ciò significherebbe che la Prima Linea e la Seconda Linea avrebbero un colspan di 5.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top