silverlight使用DataPager实现DataGrid分页
2012-12-11 17:20
330 查看
1)前台代码
<UserControl x:Class="SilverlightApplication70.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data">
<Grid x:Name="LayoutRoot" Background="White">
<!--用StackPanel解决DataGrid和DataPager绑定之后,DataGrid行无法选中。-->
<StackPanel Orientation="Vertical">
<data:DataGrid Name="TestDataGrid" AutoGenerateColumns="False">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="StudentID" Binding="{Binding StudentID}">
</data:DataGridTextColumn>
<data:DataGridTextColumn Header="StudentName" Binding="{Binding StudentName}">
</data:DataGridTextColumn>
</data:DataGrid.Columns>
</data:DataGrid>
<data:DataPager Name="TestDataPager"/>
</StackPanel>
</Grid>
</UserControl>
2)后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SilverlightApplication70
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
List<Student> items=GetStudents();
System.Windows.Data.PagedCollectionView pagedCollectionView = new System.Windows.Data.PagedCollectionView(items);
pagedCollectionView.PageSize = 5;
TestDataGrid.ItemsSource = pagedCollectionView;
TestDataPager.Source = pagedCollectionView;
}
/// <summary>
/// 获取数据源
/// </summary>
/// <returns></returns>
private List<Student> GetStudents()
{
List<Student> items = new List<Student>();
for (int i = 0; i < 20; i++)
{
items.Add(new Student(i,"张三"+i));
}
return items;
}
}
public class Student
{
public Student(){ }
public Student(int _studentID, string _studentName)
{
this.StudentID = _studentID;
this.StudentName = _studentName;
}
private int studentID;
public int StudentID
{
get { return studentID; }
set { studentID = value; }
}
private string studentName;
public string StudentName
{
get { return studentName; }
set { studentName = value; }
}
}
}
3)个人小结
silverlight使用DataPager实现DataGrid分页是客户端分页,在客户端选择上一页,下一页时是不会连接数据库的。
<UserControl x:Class="SilverlightApplication70.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data">
<Grid x:Name="LayoutRoot" Background="White">
<!--用StackPanel解决DataGrid和DataPager绑定之后,DataGrid行无法选中。-->
<StackPanel Orientation="Vertical">
<data:DataGrid Name="TestDataGrid" AutoGenerateColumns="False">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="StudentID" Binding="{Binding StudentID}">
</data:DataGridTextColumn>
<data:DataGridTextColumn Header="StudentName" Binding="{Binding StudentName}">
</data:DataGridTextColumn>
</data:DataGrid.Columns>
</data:DataGrid>
<data:DataPager Name="TestDataPager"/>
</StackPanel>
</Grid>
</UserControl>
2)后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SilverlightApplication70
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
List<Student> items=GetStudents();
System.Windows.Data.PagedCollectionView pagedCollectionView = new System.Windows.Data.PagedCollectionView(items);
pagedCollectionView.PageSize = 5;
TestDataGrid.ItemsSource = pagedCollectionView;
TestDataPager.Source = pagedCollectionView;
}
/// <summary>
/// 获取数据源
/// </summary>
/// <returns></returns>
private List<Student> GetStudents()
{
List<Student> items = new List<Student>();
for (int i = 0; i < 20; i++)
{
items.Add(new Student(i,"张三"+i));
}
return items;
}
}
public class Student
{
public Student(){ }
public Student(int _studentID, string _studentName)
{
this.StudentID = _studentID;
this.StudentName = _studentName;
}
private int studentID;
public int StudentID
{
get { return studentID; }
set { studentID = value; }
}
private string studentName;
public string StudentName
{
get { return studentName; }
set { studentName = value; }
}
}
}
3)个人小结
silverlight使用DataPager实现DataGrid分页是客户端分页,在客户端选择上一页,下一页时是不会连接数据库的。
相关文章推荐
- Silverlight - 没有RIA Services时使用Data Pager实现服务端数据分页
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- Silverlight客户端分页 DataPager控件的使用
- Silverlight使用Datapager
- silverlight 数据模板 DataTemplate 使用 codebehind实现
- 使用Silverlight3中的DataPager实现服务器端分页
- 使用Silverlight3中的DataPager实现服务器端分页[转]
- 使用Silverlight3中的DataPager实现服务器端分页
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(一)
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- 使用ListView+ObjectDataSource+DataPager实现增删改查加分页
- 【转】使用 Entity Framework + ListView + DataPager 实现数据分页
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- silverlight分页控件DataPager使用要点
- 使用ListView+ObjectDataSource+DataPager实现增删改查加分页
- ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(二)
- 使用Silverlight3中的DataPager实现服务器端分页
- Android使用TabLayou+fragment+viewpager实现滑动切换页面效果
- ViewPager的使用方法和实现过程