2010-08-29 7 views
3

J'ai une vue en grille qui a 10 lignes. J'ai mis paging = true et pageSize = 2asp.net gridview paging

Maintenant, lorsque je tente de naviguer dans la page par le lien mentionné ci-dessous comme 1, 2, 3 , je reçois alors quelque chose comme erreur événement besoin pageIndexChanged.

J'ai ajouté cet événement mais je ne comprends pas quel code dois-je ajouter à cet événement pour accéder à la page suivante en maintenant l'état dans chaque page?

S'il vous plaît laissez-moi savoir

Répondre

1

Tout ce que vous devez faire est de définir la PageIndex pour le GridView à la nouvelle page, et re-lier le contrôle.

protected void gridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    gridView1.PageIndex = e.NewPageIndex; 
    BindGrid(); // this is whatever method you call to bind your data. 
} 

EDIT:

Vous devriez déjà avoir un gestionnaire d'événements pour l'événement DataBound du GridView:

protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
    // lots of code here to do stuff with bound data. 
} 

Au lieu d'avoir "beaucoup de code", vous avez cette :

protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
    BindGrid(); 
} 

Par conséquent sur le PageIndexChanging événement, tout ce que vous faites est de relier les données (en appelant la même logique pour l'événement DataBound).

Avez-vous du sens?

+0

GridView1.DataSource = dt; GridView1.DataBind(); c'est le code que j'écris pour lier ma grille de données sur un clic de bouton. donc je devrais le faire et comment, vous voulez dire que je devrais effectuer l'opération de base de données ici beacue dt id dans Button cliquez sur événement et non accessible côté – NoviceToDotNet

+0

Refactoriser votre code d'une manière qui expose dt être accessible à partir du PageIndexChanging Eventhandler – citronas

+0

Comment faire cela pour que je puisse obtenir le même dt à lier je suis vraiment novice à cela s'il vous plaît me suggérer la structure que je devrais avoir. parce que j'ai dt en cliquant sur le bouton. devrais-je déclarer un côté dt out globalement mais sur le post-retour il fera table de données emapty que dois-je faire? – NoviceToDotNet