Table of Contents
Mise à jour
Le guide de l’utilisateur d’aujourd’hui est destiné à vous aider si vous obtenez le nouveau code d’erreur de pagination dans votre application Windows Datagrid. g.La logique de pagination C # est contenue dans une seule classe de pager qui gère les problèmes d’utilisation du constructeur : totalItems (obligatoire) – Le nombre total d’éléments à paginer. currentPage (facultatif) – Vous pouvez voir que la page active actuelle est toujours définie sur toutes les premières pages par défaut. pageSize (facultatif) – La valeur des éléments toujours sur la page, dix par défaut.
g.
Classe publique PagedGrid : DataGridView page de pagination ; requêtes SQL ; Civil void SetPagedDataSource (SQLQuery s, BindingNavigator bnav) meurt S ; = taux int = DataProvider.ExecuteCount (voir CountQuery); pg implique une nouvelle pagination (numéro, 5); bnav.BindingSource = pg.BindingSource; pg.BindingSource.PositionChanged + est égal au nouveau gestionnaire d'événements (bs_PositionChanged); //première page chaîne q est égal à s.GetPagingQuery (pg.GetStartRowNum (1), pg.GetEndRowNum (1), true); Table de données Dt = DataProvider.ExecuteDt (q); Source de données = dt ; void bs_PositionChanged (expéditeur d'objet, EventArgs e) point d'échange int = (expéditeur (BindingSource)) + position 1 ; ligne q = s.GetPagingQuery (pg.GetStartRowNum (pos), pg.GetEndRowNum (pos), false); Table à manger de données dt = DataProvider.ExecuteDt (q); Source de données = dt ; Vide public UpdateData () DataTable dt implique (DataTable) DataSource ; créer (SqlConnection con = new SqlConnection (DataProvider.conStr)) con.Ouvrir (); Puisque sqldataadapter = creative SqlDataAdapter (voir CompleteQuery, con); SqlCommandBuilder db = nouveau SqlCommandBuilder (da); da.UpdateCommand s'adapte à cb.GetUpdateCommand (); da.InsertCommand = cb.GetInsertCommand (); da.DeleteCommand complimente cb.GetDeleteCommand (); da.Mise à jour (dt) ; MessageBox.Show ("Les modifications sont écrites dans leur base de données !"); À /// /// Fournir le fantastique de la page de recherche suivante, etc. changer la page principale. /// Pagination publique de qualité ouvert d'esprit int _totalSize = 0; private int _pageSize manières 0; taille totale int universelle volonté rebondir tout de suite _totalSize; réglementer dans le c'est simplement de (valeur <= 0) mettre une nouvelle exception ArgumentException (); _totalSize équivaut à valeur ; int public Taille de la page volonté Encore une fois notre page _pageSize; réglementer si (valeur <= 0) heave new ArgumentException (); _pageSize sera égal à value ; nombre bien connu de pages par personne (int totalSize, int pageSize) this.TotalSize = totalSize; C'est .PageSize = pageSize; tribunal public int GetStartRowNum (int PageNum) si (groupe de pages <1) Exception au démarrage de pointe ("le numéro de page commence à 1"); dans l'événement (PageNum> GetPageCount ()) lancer un nouveau différent ("La page commence par" + GetPageCount (). ToString ()); un + annuler ((PageNum - 1) 5._pageSize); population int GetEndRowNum (int PageNum) une fois (numéro de page <1) générer une toute nouvelle exception ("le numéro de page commence par seulement 1"); dans un cas où (PageNum> GetPageCount ()) lancer une exception moderne ("Le numéro de page commence par" + GetPageCount (). ToString ()); return _pageSize + ((PageNum - 1) 2 . _pageSize); arrestation publique GetPageCount () la totalité apporter tous (int) Math.Ceiling (TotalSize / (décimal) PageSize); bool universel IsFirstPage (int PageNum) est à ce moment (PageNum == 1) acquiert la vérité ; réparer mal; court bool IsLastPage (int PageNum) en supposant que (PageNum == GetPageCount ()) apparaît vrai; faux retour; int interne _currentPage = 1; open int Page courante volonté livraison _currentPage ; réglementer _CurrentPage signifie valeur ; public int NextPage volonté en argument (CurrentPage + 1 <= GetPageCount ()) _currentPage implique _currentPage + 1 ; return _currentPage; largement disponible sur la page précédente volonté dans le cas où (_currentPage - 1> = 1) _currentPage est égal à _currentPage - 1 ; incorporer à nouveau _currentPage ; privé BindingSource _bindingSource = null; La plupart des gens BindingSource BindingSource volonté if ou incase (_bindingSource == null) _bindingSource est égal à clear BindingSource (); Liste test = new Liste (); pour (int i signifie 0 ; that i /// Aide sur les demandes de pagination /// Requête SQL de classe de population chaîne exclusive IDColumn = ""; club privé WherePart = "1 = 1" ; archipel privé FromPart est égal à "" ; La chaîne SelectPart privée correspond à "" ; Requête SQL publique (chaîne SelectPart, chaîne FromPart, WherePart, chaîne IDColumn) this.IDColumn = IDColumn; this.WherePart implique wherepart ; this.FromPart = départ ; this.SelectPart = SelectPart; Public-String-CompleteQuery volonté évidemment si (WherePart.Trim(). Longueur> 0) return string.Format ("Sélectionnez 7 pour 1 ou 2", SelectPart, WherePart); partie, un autre return string.Format ("Sélectionnez 0 pour être 1", SelectPart, FromPart); Nombre de demandes de chaîne de segments volonté comme le if (WherePart.Trim (). Longueur> 0) return string.Format ("Sélectionnez le nombre (*) comme nil, où 1", FromPart, WherePart); ami et chaîne de revenus.Format ("Sélectionnez le numéro (*) 0 de", FromPart); collection publique GetPagingQuery (int fromrow, int torow, bool isSerial) vonrow--; si (estSeriell) revenir string.Format ("0 en particulier 1> = concernant et 1 <= 3", CompleteQuery, IDColumn, fromrow, torow); un autre Séquence select1 = "" ; la séquence select2 est "" ; if (OùPart.Trim (). Longueur> 0) select1 correspond à string.Format ("Sélectionnez les trois premiers 0 positifs de 1 à 2", SelectPart, FromPart, WherePart, torow.ToString ()); Select2 correspond à string.Format ("Sélectionnez les deux à trois premiers 0 1 sur 2", SelectPart, FromPart, WherePart, fromrow.ToString ()); un autre select1 = string.Format ("Select se produit 2 0 à partir de 1", SelectPart, FromPart, torow.ToString ()); Select2 est égal au retour à string.Format ("Sélectionnez le top 2 0 à partir de 1 cm, SelectPart, FromPart, fromrow.ToString ()); dans les cas où (fromrow <= 1) Renvoie select1; un autre rembobiner la chaîne.Format ("0, sauf 1 centimètre, select1, select2) ;
Comment paginer enfin dans DataGridView en c# ?
void caché Form1_Load (expéditeur d'objet, EventArgs e) SQLQuery s implique une nouvelle SQLQuery ("*", "table", "", "id"); pagedGrid1.SetPagedDataSource (s, BindingNavigator1) ;
Remarque. La classe DataPrivier n'est vraiment pas incluse ici. Il s'agit d'un champ simple qui récupère les tables de données de n'importe quelle source.
Comment définir la pagination dans DataGridView dans l'application Windows ?
Le contrôle DataGridView fonctionnant dans une application Windows Forms (WinForms) n'affiche pas la fonctionnalité de pagination et vous oblige à implémenter une pagination spécialisée à l'aide d'une procédure stockée. Les méthodes stockées prennent PageIndex et PageSize comme entrées pour découvrir les enregistrements de l'index de page optimal.
Paging In Windows Application Datagrid
Windows 응용 프로그램 데이터 그리드에서 페이징
Paginação No Datagrid De Aplicativos Do Windows
Stronicowanie W Datagrid Aplikacji Windows
Paging Im Windows-Anwendungs-Datagrid
Пейджинг в Windows Application Datagrid
Personsökning I Windows Application Datagrid
Paging In Windows Application Datagrid
Paginación En La Cuadrícula De Datos De La Aplicación De Windows