如何为datagrid视图创建分页

时间:2014-02-25 08:22:51

标签: c# wpf linq-to-sql datagridview

我的wpf页面中有一个DataGrid。如何为此数据网格添加分页? 我使用LinqToSql类从数据库中获取数据。

我将数据绑定到datagrid,如关注

var supplier = (from p in cd.suppliers
                 select p).Take(10);
MyDataGrid.ItemsSource = supplier;

此表格列是 - > SUP_ID,Sup_Name,PHONE_NUM,电邮,说明,地址

这是我的xaml

<Grid Height="500" VerticalAlignment="Top">



        <DataGrid x:Name="MyDataGrid" x:Uid="MyDataGrid" AutoGenerateColumns="False"  
                   AlternationCount="2" SelectionMode="Single" Margin="0,47,0,0">
            <DataGrid.Columns>

                <DataGridTextColumn  Binding="{Binding  Path=Sup_Id}" IsReadOnly="True" 
                                Header="Supplier ID" Width="150" />

                <DataGridTextColumn Binding="{Binding Path=Sup_Name}" 

                                Header="Suppier Name" Width="200" />

                <DataGridTextColumn Binding="{Binding Path=Phone_Num}" 
                                Header="Mobile" Width="190" />

                <DataGridTextColumn Binding="{Binding Path=Email}" 

                                Header="Email" Width="230" />

                <DataGridTextColumn Binding="{Binding Path=Address}" 

                                Header="Address" Width="250" />



            </DataGrid.Columns>

        </DataGrid>
        <StackPanel Margin="464,500,464,-51" Orientation="Horizontal" HorizontalAlignment="Center">
            <Button Margin="4,0" Content="back" Click="back_click"/>
            <Button Margin="4,0" Content="next" Click="next_click"/>
        </StackPanel>
    </Grid>

1 个答案:

答案 0 :(得分:1)

您可以添加dataPager:

                            <datagrid>Your dataGrid</datagrid>
                            <sdk:DataPager Name="dataPager" 
                                           DisplayMode="FirstLastPreviousNext"
                                           HorizontalContentAlignment="Left"
                                           HorizontalAlignment="Left"
                                           PageSize="15"/>

PageSize是每页所需的行数。

在后面的代码中:

               var supplier = (from p in cd.suppliers
             select p);
                MyDataGrid.ItemsSource = supplier; 
                dataPager.Source = supplier;

在这里,您必须加载所需的所有数据。 dataPager将完成这项工作。

如果您拨打30行,则会有2个页面。

您可以限制拍摄的数量,但对于分页则无用。

编辑:误读了您的问题:您使用的是WPF而不是Silverlight,请尝试以下链接:http://social.msdn.microsoft.com/Forums/vstudio/en-US/6f43b225-7a23-4f16-bff8-cdbb5864038b/wpf-datapager?forum=wpf