GridView.PageSize par défaut de 10 le 1er chargement de la page
Je suis à l'aide de C#, .NET 3.5. J'ai un contrôle GridView avec dynamiquement lié source de données, et j'ai mis la PageSize de façon dynamique dans le gestionnaire d'événements Page_Load. J'ai mis cases à cocher allowcustompaging = true sur le contrôle.
Le contrôle GridView la pagination fonctionne très bien, cependant le set pagesize dans Page_Load n'est pas la première fois que la page est chargée. La première fois que la page est chargée, il sera toujours afficher les 10 lignes, indépendamment de la GridView.PageSize bien que j'ai mis (5, 15, etc). Après la 1ère heure (page de publication), la taille de la page prend effet et tout fonctionne comme prévu.
La taille de la Page est une propriété de la Page Maître que je l'obtenir à partir du web.Fichier de configuration sous appsettings.
Je ne suis pas sûr pourquoi, la pagesize de la gridView ne prendra effet le 1er temps. Dois-je être le réglage de la pagesize dans un autre événement autre que le Page_Load. Aussi, je suis en train de toujours, même si sa publication. Je suis en cours d'exécution de la page à l'aide du serveur web interne. Aucune idée de ce qui se passe?
code derrière (GridView1.Cases à cocher allowcustompaging = true sur la page aspx):
protected void Page_Load(object sender, System.EventArgs e)
{
DataView dvMembers = GetMembers;
GridView1.DataSource = dvMembers;
GridView1.PageSize = Master.GridViewSize;
}
Page principale de la propriété :
public int GridViewSize
{
get { return Convert.ToInt32
(ConfigurationManager.AppSettings ["memberDataGridPageSize"]); }
}
Vous devez vous connecter pour publier un commentaire.
L'événement PageLoad de votre enfant page est appelé avant l'événement PageLoad de votre page principale. Par conséquent, si vous définissez
Master.GridViewSize
dans la page maître PageLoad cas, il n'est pas jusqu'à la seconde Publication.Il serait préférable de charger le GridViewSize tôt dans le cycle de vie de page, puis de les stocker dans la session.
En échange de définition pour GridView est mis sur la première liaison de données, mais pas dans la seconde si une publication se produit.(Par défaut il n'y a pas de pagination)
Vous devez définir la pagination pour GridView sur la page aspx.
Essayez comme ceci
Sais aussi que, Si vous exécutez ASP.NET 3.5 projet,vous pouvez utiliser
DataPager
de contrôle de l'extension du GridView,il y a un exemple qui Matt Berseth développé ici.Manquait le PageBind méthode après le réglage de la Pagesize. Ajoutant que et tout fonctionne bien.
J'ai été liaison de la commande avant le réglage de la PageSize et je suppose que cette valeur était enregistré après le 1er temps et d'être utilisé sur une Publication, par la suite, mais pas la première fois.
Merci Jason Berkan pour souligné.