Sarà dura. Innanzitutto, è necessario ViewState, quindi è necessario ospitare il report in una normale pagina WebForms. Questo non è poi così male - WebForms e MVC funzionano bene affiancati.
La parte difficile è vincolante per gli oggetti IEnumerable reali e non per quelle ObjectDataSources phoney-baloney.
Il primo passaggio consiste nella creazione di un modello di dati del report. Puoi farlo nel codice, con le domande, qualunque cosa, comunque tu voglia. Una struttura simile a questa (ma ovviamente molto più grande) è tipico:
public class ReportSource
{
public Floogle[] Floogles { get; set; }
}
public class Floogle
{
public Doodad[] Doodads { get; set; }
public string Text { get; set; }
}
public class Doodad
{
public int Number { get; set; }
}
Il trucco è quello di utilizzare un controllo BindingSource nel report e impostare la proprietà DataSource per typeof(ReportSource)
- sì, la fonte dei dati è il tipo di modello di rapporto.
Quando si progetta il report non si otterrà molta ricchezza, ma sarete in grado di farlo.
Per quanto riguarda le soluzioni di reporting di terze parti, abbiamo trovato che Telerik è l'opzione migliore.
fonte
2009-05-19 12:38:00
Dove esattamente utilizzo questa BindingSource ?? – AndreMiranda
Prima di tutto, mi dispiace che tu debba lavorare con questo strumento orribile. BindingSource è un "controllo" che puoi "trascinare" sulla superficie del designer. –
MVC non è progettato per i controlli associabili con trascinamento della selezione.Certo, puoi "hackerarli" con MVC (dato che MVC è ancora costruito sulla stessa base dei Webform) ma va contro il paradigma MVC, quindi non è raccomandato. La risposta di Shiraz è buona se hai rapporti esistenti che devi utilizzare con MVC. –