WPF中的DataGrid分页
WPF
XAML:
<DataGrid AutoGenerateColumns="False" Height="148" HorizontalAlignment="Left" Margin="27,21,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="380" IsReadOnly="True" CanUserAddRows="False" VerticalScrollBarVisibility="Auto" SelectionMode="Single" EnableRowVirtualization="False">
<DataGrid.Columns>
<DataGridTextColumn Header="编号" Binding="{Binding Path=title_id}" />
<DataGridTextColumn Header="书名" Binding="{Binding Path=title}" />
<DataGridTextColumn Header="价格" Binding="{Binding Path=price}" />
</DataGrid.Columns>
</DataGrid>
<Button Content="上一页" Height="23" HorizontalAlignment="Left" Margin="37,185,0,0" Name="button7" VerticalAlignment="Top" Width="65" Click="button7_Click" />
<Button Content="下一页" Height="23" HorizontalAlignment="Left" Margin="108,185,0,0" Name="button8" VerticalAlignment="Top" Width="59" Click="button8_Click" />
<Label Content="转到" Height="28" HorizontalAlignment="Left" Margin="173,186,0,0" Name="label6" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="212,187,0,0" Name="textBox1" VerticalAlignment="Top" Width="53" />
<Button Content="GO" Height="23" HorizontalAlignment="Left" Margin="298,185,0,0" Name="button9" VerticalAlignment="Top" Width="96" Click="button9_Click" />
<Label Content="页" Height="28" HorizontalAlignment="Left" Margin="269,185,0,0" Name="label7" VerticalAlignment="Top" />
<Label Height="28" HorizontalAlignment="Left" Margin="120,228,0,0" Name="label8" VerticalAlignment="Top" Content="【第" />
<Label Content="1" Height="28" HorizontalAlignment="Left" Margin="157,228,0,0" Name="label1" VerticalAlignment="Top" />
<Label Content="页】" Height="28" HorizontalAlignment="Left" Margin="176,228,0,0" Name="label10" VerticalAlignment="Top" />
<Label Content="【共" Height="28" HorizontalAlignment="Left" Margin="242,228,0,0" Name="label11" VerticalAlignment="Top" />
<Label Content="1" Height="28" HorizontalAlignment="Left" Margin="280,228,0,0" Name="label2" VerticalAlignment="Top" />
<Label Content="页】" Height="28" HorizontalAlignment="Left" Margin="298,228,0,0" Name="label13" VerticalAlignment="Top" />
后台:
把这个句代码加进你的构造方法中:DataGridBind(Convert.ToInt32(label1.Content));
//每页显示5条记录
public const int pageSize= 5;
private void DataGridBind(int pageIndex)
{
//pageIndex当前页的序号
int recordsum = 0;
int PageSum = 0;
PubsDataCountext pubs = new PubsDataCountext();
var query = from title in pubs.titles select title;
recordsum = query.Count();
//判断总页数
if (recordsum % pageSize == 0)
{
PageSum = recordsum / pageSize;
}
else PageSum = recordsum / pageSize + 1;
dataGrid1.ItemsSource = query.Skip((pageIndex - 1) * pageSize).Take(pageSize);
label1.Content = Convert.ToString(pageIndex);
label2.Content = Convert.ToString(PageSum);
}
private void button7_Click(object sender,RoutedEventArgs e) {
//上一页
if (Convert.ToInt32(label1.Content) > 1)
DataGridBind(Convert.ToInt32(label1.Content)-1);
}
private void button8_Click(object sender,RoutedEventArgs e)
{
//下一页
if (Convert.ToInt32(label1.Content) < Convert.ToInt32(label2.Content))
DataGridBind(Convert.ToInt32(label1.Content)+1);
}
private void button9_Click(object sender,RoutedEventArgs e) {
//调转到底n页
if (Convert.ToInt32(textBox1.Text) >= 1 && Convert.ToInt32(textBox1.Text) <= Convert.ToInt32(label2.Content))
DataGridBind(Convert.ToInt32(textBox1.Text));
}
没看懂的看原作者的,不要问我,我也是从他那里找的,但我试过可以用
转自:http://www.360doc.com/content/16/0411/22/24811_549840913.shtml

浙公网安备 33010602011771号