Class SfDataPager
Provides paging functionality for SfDataGrid that displays records in a paged view.
Inheritance
Implements
Namespace: Syncfusion.SfDataGrid.XForms.DataPager
Assembly: Syncfusion.SfDataGrid.XForms.dll
Syntax
public class SfDataPager : Grid, IDisposable, IParentThemeElement, IThemeElement
Constructors
SfDataPager()
Initializes a new instance of the SfDataPager class.
Declaration
public SfDataPager()
Fields
AccentBackgroundProperty
Identifies the AccentBackground Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty AccentBackgroundProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
AppearanceManagerProperty
Identifies the AppearanceManager Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty AppearanceManagerProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
AutoElipsisModeProperty
Identifies the AutoEllipsisMode Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty AutoElipsisModeProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
AutoEllipsisModeProperty
Identifies the AutoEllipsisMode Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty AutoEllipsisModeProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
AutoEllipsisTextProperty
Identifies the AutoEllipsisText Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty AutoEllipsisTextProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
ButtonFontSizeProperty
Identifies the ButtonFontSize Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty ButtonFontSizeProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
ButtonShapeProperty
Identifies the ButtonShape Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty ButtonShapeProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
ButtonSizeProperty
Identifies the ButtonSize Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty ButtonSizeProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
DisplayModeProperty
Identifies the DisplayMode Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty DisplayModeProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
NumericButtonCountProperty
Identifies the NumericButtonCount Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty NumericButtonCountProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
NumericButtonsGenerateModeProperty
Identifies the GenerateNumericButtons Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty NumericButtonsGenerateModeProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
OrientationProperty
Identifies the Orientation Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty OrientationProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
PageCountProperty
Identifies the PageCount Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty PageCountProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
PagedSourceProperty
Identifies the PagedSource Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty PagedSourceProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
PageSizeProperty
Identifies the PageSize Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty PageSizeProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
SourceProperty
Identifies the Source Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty SourceProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
UseOnDemandPagingProperty
Identifies the UseOnDemandPaging Xamarin.Forms.BindableProperty.
Declaration
public static readonly BindableProperty UseOnDemandPagingProperty
Field Value
Type |
---|
Xamarin.Forms.BindableProperty |
Remarks
This Xamarin.Forms.BindableProperty is read-only.
Properties
AccentBackground
Gets or sets a Color, which is set as selection color of the NumericButtons.
Declaration
public Color AccentBackground { get; set; }
Property Value
Type |
---|
Xamarin.Forms.Color |
AppearanceManager
Gets or sets the appearance manager, SfDataPager enables the user to customize the appearance of the pager by writing a Style class overriding from AppearanceManager and assigning the customized class to this property.
Declaration
public AppearanceManager AppearanceManager { get; set; }
Property Value
Type | Description |
---|---|
AppearanceManager | The AppearanceManager of SfDataPager. |
Examples
sfPager.Source = viewModel.Info;
sfGrid.ItemsSource = sfPager.PagedSource;
sfDataPager.AppearanceManager = new CustomAppearance();
//CustomAppearance.cs
public class CustomAppearance : AppearanceManager
{
}
See Also
AutoEllipsisMode
Gets or sets AutoEllipsisMode, which indicates the possible ellipsis mode for the numeric button in the scrollable panel of the SfDataPager. By default, all the numeric buttons in the page will be in view. However, the user can set auto ellipsis mode by using AutoEllipsisMode property.
Declaration
public AutoEllipsisMode AutoEllipsisMode { get; set; }
Property Value
Type | Description |
---|---|
AutoEllipsisMode | The AutoEllipsisMode for the numeric button in the SfDataPager. |
Examples
sfPager.Source = viewModel.Info;
sfGrid.ItemsSource = sfPager.PagedSource;
sfPager.AutoEllipsisMode = AutoEllipsisMode.After;
AutoEllipsisText
Gets or sets the text for the numeric button in auto ellipsis mode. By default, all the numeric buttons in the page will be in view. However, the user can set auto ellipsis mode by using AutoEllipsisMode property. SfDataPager allows the user to customize the text to be displayed in the auto ellipsis mode by using this property.
Declaration
public string AutoEllipsisText { get; set; }
Property Value
Type | Description |
---|---|
System.String | The text for the numeric button in auto ellipsis button. The default value is "...". |
Examples
sfPager.Source = viewModel.Info;
sfGrid.ItemsSource = sfPager.PagedSource;
sfPager.AutoEllipsisMode = AutoEllipsisMode.After;
sfPager.AutoEllipsisText = "~~~";
ButtonCornerRadius
Gets or Sets the corner radius for the page buttons when ButtonShape is Rectangle. The default value is 2.
Declaration
public double ButtonCornerRadius { get; set; }
Property Value
Type |
---|
System.Double |
ButtonFontSize
Gets or sets the font size of all the buttons in the SfDataPager control. The default value is 14.
Declaration
public double ButtonFontSize { get; set; }
Property Value
Type |
---|
System.Double |
Examples
<sfPager:SfDataPager x:Name ="dataPager"
PageSize="15"
HeightRequest ="50"
ButtonFontSize="20">
</sfPager:SfDataPager>
dataPager.ButtonFontSize=20;
ButtonShape
Gets or sets the shape of the buttons in the data pager. Default value is Circle.
Declaration
public ButtonShape ButtonShape { get; set; }
Property Value
Type |
---|
ButtonShape |
ButtonSize
Gets or sets a value that acts as the width and height of all the buttons in the SfDataPager control. The default value is 40 for mobile platforms and 35 for desktop platforms.
Declaration
public double ButtonSize { get; set; }
Property Value
Type |
---|
System.Double |
Examples
<sfPager:SfDataPager x:Name ="dataPager"
PageSize="15"
HeightRequest ="62"
ButtonSize="50">
</sfPager:SfDataPager>
dataPager.ButtonSize=50;
ButtonSpacing
Gets or Sets the spacing between two buttons when ButtonShape is Rectangle.The default value is 4.
Declaration
public double ButtonSpacing { get; set; }
Property Value
Type |
---|
System.Double |
DisplayMode
Gets or sets the page display mode for the SfDataPager. The user can customize the buttons to be displayed in the pager, by using this property. By default all the buttons (first, last, next, previous and numeric buttons) will be in view.
Declaration
public PagerDisplayMode DisplayMode { get; set; }
Property Value
Type | Description |
---|---|
PagerDisplayMode | The PagerDisplayMode of SfDataPager. |
Examples
sfPager.Source = viewModel.Info;
sfGrid.ItemsSource = sfPager.PagedSource;
sfPager.DisplayMode = PagerDisplayMode.FirstLastNumeric;
EnableGridPaging
Gets or sets a value indicating whether to create source from Syncfusion.SfDataGrid.XForms.DataPager.GridPagedCollectionViewWrapper or PagedCollectionView.
Declaration
public bool EnableGridPaging { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean | True, if the source is created from Syncfusion.SfDataGrid.XForms.DataPager.GridPagedCollectionViewWrapper, otherwise false. The default value is true. |
Remarks
The items can be loaded in the SfDataPager by two ways: normal paging and on demand paging. In normal paging, all the items are loaded initially when the grid is loaded. In on demand paging, the items are loaded to the grid only when navigating to the page i.e. items are loaded dynamically on demand.
When Normal paging is used, the source is created from Syncfusion.SfDataGrid.XForms.DataPager.GridPagedCollectionViewWrapper, since it has to load all the items to the grid. When on demand paging is used, the source is created from PagedCollectionView, since it has to load the items to the grid for the current page only.
When EnableGridPaging is set as true, it is necessary to hook the OnDemandLoading event to load the items dynamically to the grid and set UseOnDemandPaging to true.
Examples
sfPager.EnableGridPaging = false;
sfPager.UseOnDemandPaging = true;
sfPager.OnDemandLoading += sfPager_OnDemandLoading;
private void OnDemandPageLoading(object sender, OnDemandLoadingEventArgs args)
{
sfDataPager.LoadDynamicItems(args.StartIndex, source.Skip(args.StartIndex).Take(args.PageSize));
}
See Also
NumericButtonCount
Gets or sets the number of buttons to be displayed in the view in SfDataPager.
Declaration
public int NumericButtonCount { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 | The number of buttons to be displayed in the view in SfDataPager. |
Remarks
if NumericButtonCount is greater than View size, then number of button need to be displayed is calculated based on view size.
Examples
sfPager.Source = viewModel.Info;
sfGrid.ItemsSource = sfPager.PagedSource;
sfPager.PageSize = 15;
sfPager.NumericButtonCount = 4;
NumericButtonsGenerateMode
Gets or sets a value indicating how the numeric buttons should be generated in the view.
Declaration
public NumericButtonsGenerateMode NumericButtonsGenerateMode { get; set; }
Property Value
Type | Description |
---|---|
NumericButtonsGenerateMode | The NumericButtonsGenerateMode of the SfDataPager. The default value is Manual. |
Examples
sfPager.NumericButtonsGenerationMode = NumericButtonsGenerationMode.Auto;
Orientation
Gets or sets the scroll orientation of the DataPager. By default, SfDataPager will scroll horizontally, the user can customize the pager to be scrolled vertically or in both horizontal and vertical directions by using this property.
Declaration
public ScrollOrientation Orientation { get; set; }
Property Value
Type | Description |
---|---|
Xamarin.Forms.ScrollOrientation | The Xamarin.Forms.ScrollOrientation of the SfDataPager. The default value is Xamarin.Forms.ScrollOrientation.Horizontal. |
Examples
sfPager.Source = viewModel.Info;
sfGrid.ItemsSource = sfPager.PagedSource;
sfPager.Orientation = ScrollOrientation.Both;
PageCount
Gets or sets the page count, which returns the total number of pages in SfDataPager.
Declaration
public int PageCount { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 | The total number of pages in the SfDataPager. |
PagedSource
Gets or sets the PagedSource of the SfDataPager, which is assigned to the item source of the SfDataGrid.
Declaration
public PagedCollectionView PagedSource { get; set; }
Property Value
Type | Description |
---|---|
PagedCollectionView | The PagedCollectionView of SfDataPager. |
Remarks
The items source of the SfDataPager is set to the collection, based on which PagedSource is created internally. The ItemsSource is set as PagedSource.
Examples
sfPager.Source = viewModel.Info;
sfGrid.ItemsSource = sfPager.PagedSource;
See Also
PageIndex
Gets or sets the page index, which indicates the current page index.
Declaration
public int PageIndex { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 | The current page index of SfDataPager. |
Examples
sfPager.Source = viewModel.Info;
sfGrid.ItemsSource = sfPager.PagedSource;
sfPager.PageIndex = 3;
PageSize
Gets or sets the page size, used to set total number of rows to be displayed in the grid.
Declaration
public int PageSize { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 | The total number of rows to be displayed in the grid. |
Examples
sfPager.Source = viewModel.Info;
sfGrid.ItemsSource = sfPager.PagedSource;
sfPager.PageSize = 15;
See Also
Source
Gets or sets the items source of the SfDataPager. SfDataPager is bind to the observable collection of data. This property is set only when normal paging is used, since setting this property loads all the items to the grid initially.
Declaration
public IEnumerable Source { get; set; }
Property Value
Type | Description |
---|---|
System.Collections.IEnumerable | The items source of the SfDataPager. |
Remarks
The items source of the SfDataPager is set to the collection, based on which PagedSource is created internally. The ItemsSource is set as PagedSource.
The items can be loaded in the SfDataPager by two ways: normal paging and on demand paging. In normal paging, all the items are loaded initially when the grid is loaded. In on demand paging, the items are loaded to the grid only when navigating to the page i.e. items are loaded dynamically on demand. Source property should not be assigned when on demand paging is used.
Examples
sfPager.Source = viewModel.Info;
sfGrid.ItemsSource = sfPager.PagedSource;
See Also
UseOnDemandPaging
Gets or sets a value indicating whether to enable/disable OnDemandPaging. SfDataPager enables the user to generate the items for the current page dynamically by using this property. When on demand paging is enabled, the generation of items is handled by the OnDemandLoading event, hence it is necessary to hook the OnDemandLoading. The user cannot assign a value to the Source when using on demand paging, since the items for the current page is generated only when navigated to that page.
Declaration
public bool UseOnDemandPaging { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean | True if on demand paging is enabled, otherwise false. The default value is false. |
Remarks
In normal Paging, data collection is entirely loaded initially to the SfDataPager. However, SfDataGrid also allows the user to load the data for the current page dynamically by setting the setting this property to true. To load current page item dynamically you must hook the OnDemandLoading event. In the OnDemandLoading event, use the LoadDynamicItems(Int32, IEnumerable) method to load the data for the corresponding page in SfDataPager.
Examples
sfPager.UseOnDemandPaging = true;
sfPager.OnDemandLoading += sfPager_OnDemandLoading;
private void OnDemandPageLoading(object sender, OnDemandLoadingEventArgs args)
{
sfDataPager.LoadDynamicItems(args.StartIndex, source.Skip(args.StartIndex).Take(args.PageSize));
}
See Also
Methods
add_OnDemandLoading(OnDemandLoadingEventHandler)
Declaration
public void add_OnDemandLoading(OnDemandLoadingEventHandler value)
Parameters
Type | Name | Description |
---|---|---|
OnDemandLoadingEventHandler | value |
add_PageIndexChanged(PageIndexChangedEventHandler)
Declaration
public void add_PageIndexChanged(PageIndexChangedEventHandler value)
Parameters
Type | Name | Description |
---|---|---|
PageIndexChangedEventHandler | value |
add_PageIndexChanging(PageIndexChangingEventHandler)
Declaration
public void add_PageIndexChanging(PageIndexChangingEventHandler value)
Parameters
Type | Name | Description |
---|---|---|
PageIndexChangingEventHandler | value |
Dispose()
Perform final clean up before it is released from memory.
Declaration
public void Dispose()
Dispose(Boolean)
Releases the unmanaged resources used by the component and optionally releases the managed resources.
Declaration
protected virtual void Dispose(bool disposing)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | disposing | if true - release both managed and unmanaged resources; if false - release only unmanaged resources. |
LayoutChildren(Double, Double, Double, Double)
Layouts Children of the NumericButtonPanel.
Declaration
protected override void LayoutChildren(double x, double y, double width, double height)
Parameters
Type | Name | Description |
---|---|---|
System.Double | x | XPosition of the NumericButtonPanel. |
System.Double | y | YPosition of the NumericButtonPanel. |
System.Double | width | Width of the NumericButtonPanel. |
System.Double | height | Height of the NumericButtonPanel. |
LoadDynamicItems(Int32, IEnumerable)
This method dynamically loads items into the PagedSource on demand. This method is used when UseOnDemandPaging is enabled to load the items dynamically to the page only when navigating to the page.
Declaration
public void LoadDynamicItems(int startIndex, IEnumerable items)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | startIndex | The start index of the items to be loaded. |
System.Collections.IEnumerable | items | The items to be loaded in the page. |
See Also
MoveToFirstPage()
Moves to the first page. This method is used to navigate to the first page programmatically.
Declaration
public void MoveToFirstPage()
MoveToLastPage()
Moves to the last page. This method is used to navigate to the last page programmatically.
Declaration
public void MoveToLastPage()
MoveToNextPage()
Moves to the next page. This method is used to navigate to the next page programmatically.
Declaration
public void MoveToNextPage()
MoveToPage(Int32)
Moves to the given page index. This method is used to navigate to the desired page programmatically.
Declaration
public void MoveToPage(int pageIndex)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | pageIndex | The page index to move to. |
MoveToPage(Int32, Int32, Boolean)
Moves to the given page index. This method is used to navigate to the desired page programmatically from the current page.
Declaration
public void MoveToPage(int oldPageIndex, int pageIndex, bool animateScrolling = false)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | oldPageIndex | The old page index which represents the current page index. |
System.Int32 | pageIndex | The page index to move to. |
System.Boolean | animateScrolling | The value indicating whether scrolling can animated. |
MoveToPreviousPage()
Moves to the previous page. This method is used to navigate to the previous page programmatically.
Declaration
public void MoveToPreviousPage()
OnMeasure(Double, Double)
This method is called during the measure pass of a layout cycle to get the desired size of an element.
Declaration
protected override SizeRequest OnMeasure(double widthConstraint, double heightConstraint)
Parameters
Type | Name | Description |
---|---|---|
System.Double | widthConstraint | The available width for the element to use. |
System.Double | heightConstraint | The available height for the element to use. |
Returns
Type | Description |
---|---|
Xamarin.Forms.SizeRequest | A Xamarin.Forms.SizeRequest which contains the desired size of the element. |
OnSizeAllocated(Double, Double)
This method is called when the size of the element is set during a layout cycle. This method is called directly before the Xamarin.Forms.VisualElement.SizeChanged event is emitted.
Declaration
protected override void OnSizeAllocated(double width, double height)
Parameters
Type | Name | Description |
---|---|---|
System.Double | width | The new width of the element. |
System.Double | height | The new height of the element. |
Refresh()
Refresh the SfDataPager in runtime.
Declaration
public void Refresh()
remove_OnDemandLoading(OnDemandLoadingEventHandler)
Declaration
public void remove_OnDemandLoading(OnDemandLoadingEventHandler value)
Parameters
Type | Name | Description |
---|---|---|
OnDemandLoadingEventHandler | value |
remove_PageIndexChanged(PageIndexChangedEventHandler)
Declaration
public void remove_PageIndexChanged(PageIndexChangedEventHandler value)
Parameters
Type | Name | Description |
---|---|---|
PageIndexChangedEventHandler | value |
remove_PageIndexChanging(PageIndexChangingEventHandler)
Declaration
public void remove_PageIndexChanging(PageIndexChangingEventHandler value)
Parameters
Type | Name | Description |
---|---|---|
PageIndexChangingEventHandler | value |
ShouldInvalidateOnChildAdded(View)
Method to decide whether to call Xamarin.Forms.VisualElement.InvalidateMeasure or not.
Declaration
protected override bool ShouldInvalidateOnChildAdded(View child)
Parameters
Type | Name | Description |
---|---|---|
Xamarin.Forms.View | child | A child added to the SfDataPager. |
Returns
Type | Description |
---|---|
System.Boolean | A boolean value do decide whether to invalidate when adding a child. |
ShouldInvalidateOnChildRemoved(View)
Method to decide whether to call Xamarin.Forms.VisualElement.InvalidateMeasure or not.
Declaration
protected override bool ShouldInvalidateOnChildRemoved(View child)
Parameters
Type | Name | Description |
---|---|---|
Xamarin.Forms.View | child | A child removed from the SfDataPager. |
Returns
Type | Description |
---|---|
System.Boolean | A boolean value do decide whether to invalidate when removing a child. |
Events
OnDemandLoading
Occurs when loading the page on demand. This event fires only when UseOnDemandPaging is enabled.
Declaration
public event OnDemandLoadingEventHandler OnDemandLoading
Event Type
Type |
---|
OnDemandLoadingEventHandler |
Remarks
In normal Paging, data collection is entirely loaded initially to the SfDataPager. However, SfDataGrid also allows the user to load the data for the current page dynamically by setting the setting this property to true. To load current page item dynamically you must hook the OnDemandLoading event. In the OnDemandLoading event, use the LoadDynamicItems(Int32, IEnumerable) method to load the data for the corresponding page in SfDataPager.
Examples
sfPager.UseOnDemandPaging = true;
sfPager.OnDemandLoading += sfPager_OnDemandLoading;
private void OnDemandPageLoading(object sender, OnDemandLoadingEventArgs args)
{
sfDataPager.LoadDynamicItems(args.StartIndex, source.Skip(args.StartIndex).Take(args.PageSize));
(sfDataPager.PagedSource as PagedCollectionView).ResetCache();
}
See Also
PageIndexChanged
Occurs when PageIndexChanged. This event fires when the user navigates form one page to another page.
Declaration
public event PageIndexChangedEventHandler PageIndexChanged
Event Type
Type |
---|
PageIndexChangedEventHandler |
Examples
sfPager.PageIndexChanged += sfPager_PageIndexChanged;
private void sfPager_PageIndexChanged (object sender, PageIndexChangedEventArgs args)
{
// The user can get the old page index and the new page index here.
}
See Also
PageIndexChanging
Occurs when PageIndexChanging. This event fires when the user navigation form one page to another page begins.
Declaration
public event PageIndexChangingEventHandler PageIndexChanging
Event Type
Type |
---|
PageIndexChangingEventHandler |
Examples
sfPager.PageIndexChanging += sfPager_PageIndexChanging;
private void sfPager_PageIndexChanging (object sender, PageIndexChangingEventArgs args)
{
// The user can get the old page index and get or set the new page index here.
}