Question

Je voudrais poser une question sur la façon de faire de la pagination en codage ASP.net en C #.

La chose que j'essaie de faire est que, je veux afficher du contenu, avoir plusieurs colonnes et plusieurs lignes.

dans le codage, j’ai une liste d’objets, disons Object A

class A {
   integer id;
   string name;
   string desc;
}

et souhaitez l'afficher sur la page avec une fonctionnalité pagable.

Je recherche Google, ASP.net propose gridview et listview, mais elles nécessitent toutes une source de données, ce qui signifie que la table est directement liée à la base de données.

ce n’est pas ce que je veux, car ma liste d’objets A vient de ailleurs, pas de ma base de données (par exemple, il s’agit d’un ensemble composite de données qui génère au moment de l’exécution)

donc là, de toute façon, je peux toujours utiliser ces composants benifit, ou je dois tout faire moi-même pour la pagination ???

thx

Était-ce utile?

La solution

Une propriété de source de données accepte également un List<> ou BindingList<>.

Pour utiliser ceci dans le code:

protected void Page_Load(object sender, EventArgs e)
{
    var data = new List<Sample>();
    data.Add (...);

    GridView1.DataSource = data;
    GridView1.DataBind();
}

Et peut-être de la logique IsPostback, etc.

Autres conseils

Mon conseil est d'utiliser un GridView, avec lequel vous pouvez utiliser un ObjectDataSource, qui peut extraire ses données sous-jacentes d'une méthode de classe que vous spécifiez. Donc, la méthode de classe pourrait être (suivant votre exemple de code):

public static List<A> GetAllAs()
{
    return myAs;
}

et votre page aspx contient

<asp:ObjectDataSource ID="MyODS" runat="server" TypeName="Namespace.Classname" SelectMethod="GetAllAs" />

<asp:GridView ID="grdMyGridView" runat="server" DataSourceID="MyODS" AllowPaging="True" ... >

Les attributs TypeName et SelectMethod de ObjectDataSource lui indiquent quelle méthode et où utiliser pour remplir l’ODS avec des données. Le AllowPaging="True" vous permet de paginer automatiquement sur le GridView.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top