Advertisement
Guest User

Pagnig Class

a guest
Dec 28th, 2010
1,107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.00 KB | None | 0 0
  1.  public partial class PagerUC : UserControl, INotifyPropertyChanged
  2.     {
  3.         int Page=1, PageSize = 10, TotPage;
  4.         private IEnumerable<Object> _ItemsSource;
  5.         private IEnumerable<Object> _CurrentView;
  6.         public PagerUC()
  7.         {
  8.             InitializeComponent();
  9.            
  10.         }
  11.  
  12.         private void SetTotalPages()
  13.         {
  14.             TotPage = _ItemsSource.Count() / PageSize;
  15.             if (_ItemsSource.Count() % PageSize > 0)
  16.             {
  17.                 TotPage++;
  18.             }
  19.             LoadComboPageBox(TotPage);
  20.             SetComboPageBox(Page);
  21.             loadList(Page, PageSize);
  22.         }
  23.         private void loadList(int page, int pagesize)
  24.         {
  25.             CurrentView = _ItemsSource.Skip((page - 1) * pagesize).Take(pagesize);
  26.             lblTotPage.Content = String.Format("/ {0}", TotPage);
  27.         }
  28.  
  29.         private void SetComboPageBox(int Page)
  30.         {
  31.             cmbxPageNo.SelectedIndex = Page - 1;
  32.         }
  33.  
  34.         private void LoadComboPageBox(int TotPage)
  35.         {
  36.             List<string> _pagelist = new List<string>();
  37.             for (int i = 1; i <= TotPage; i++)
  38.             {
  39.                 _pagelist.Add(i.ToString());
  40.             }
  41.             cmbxPageNo.ItemsSource = _pagelist;
  42.         }
  43.  
  44.         private void btnNav_Click(object sender, RoutedEventArgs e)
  45.         {
  46.             Button btn = (Button)sender;
  47.             switch (btn.Tag.ToString())
  48.             {
  49.                 case Paging.First: Page = 1;
  50.                     break;
  51.                 case Paging.Next: if (Page < TotPage) Page++;
  52.                     break;
  53.                 case Paging.Previous: if (Page > 1) Page--;
  54.                     break;
  55.                 case Paging.Last: Page = TotPage;
  56.                     break;
  57.             }
  58.             SetComboPageBox(Page);
  59.             loadList(Page, PageSize);
  60.         }
  61.         public IEnumerable<Object> ItemsSource
  62.         {
  63.             get { return _ItemsSource; }
  64.             set
  65.             {
  66.                 _ItemsSource = value;
  67.                 SetTotalPages();
  68.             }
  69.         }
  70.         public IEnumerable<Object> CurrentView
  71.         {
  72.             get { return _CurrentView; }
  73.             set
  74.             {
  75.                 _CurrentView = value;
  76.                 if (PropertyChanged != null)
  77.                     PropertyChanged(this, new PropertyChangedEventArgs("CurrentView"));
  78.             }
  79.         }
  80.         #region INotifyPropertyChanged Members
  81.         public event PropertyChangedEventHandler PropertyChanged;
  82.         #endregion
  83.  
  84.         private void cmbxPageNo_SelectionChanged(object sender, SelectionChangedEventArgs e)
  85.         {
  86.             int _tpage = Page;
  87.             if (cmbxPageNo.SelectedItem!=null)
  88.             {
  89.                 Page = Convert.ToInt16(cmbxPageNo.SelectedItem.ToString());
  90.                 if (_tpage != Page)
  91.                 {
  92.                     loadList(Page, PageSize);
  93.                 }
  94.             }
  95.         }
  96.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement