come creare una griglia di paging senza un'origine dati
-
06-07-2019 - |
Domanda
Voglio fare una domanda su come eseguire il paging nella codifica ASP.net con C #.
la cosa che cerco di fare è che, voglio visualizzare alcuni contenuti, avere più colonne e più righe.
nella codifica attuale, ho un elenco di oggetti, diciamo Oggetto A
class A {
integer id;
string name;
string desc;
}
e vuoi visualizzarlo sulla pagina con funzionalità di paging.
Faccio ricerca su Google, ASP.net offre gridview e listview, ma richiedono tutti un'origine dati, il che significa che la tabella si collega direttamente al database.
non è quello che voglio, perché la mia lista di oggetti A proviene da qualche altra parte, non dal mio database (ad esempio è un insieme composito di dati, che generano in runtime)
quindi lì posso comunque usare quei componenti benifit, o devo fare tutto da solo per il paging ???
thx
Soluzione
Una proprietà DataSource accetterà anche un List<>
o BindingList<>
.
Per usare questo nel codice:
protected void Page_Load(object sender, EventArgs e)
{
var data = new List<Sample>();
data.Add (...);
GridView1.DataSource = data;
GridView1.DataBind();
}
E forse un po 'di logica IsPostback ecc.
Altri suggerimenti
Il mio consiglio è di utilizzare un GridView, con il quale è possibile utilizzare un ObjectDataSource, che può prendere i dati sottostanti da un metodo di classe specificato. Quindi il metodo class potrebbe essere (seguendo il tuo esempio di codice):
public static List<A> GetAllAs()
{
return myAs;
}
e la tua pagina aspx conterrebbe
<asp:ObjectDataSource ID="MyODS" runat="server" TypeName="Namespace.Classname" SelectMethod="GetAllAs" />
<asp:GridView ID="grdMyGridView" runat="server" DataSourceID="MyODS" AllowPaging="True" ... >
Gli attributi TypeName
e SelectMethod
di ObjectDataSource indicano quale metodo e dove utilizzare per riempire i dati ODS. AllowPaging="True"
fornisce automaticamente il paging su GridView.