datagrid 与 dataPager 分页

前景:列表加载数据并且分页,下班搞到现在,希望明天能用到。。。。。。
 
<UserControl xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"  x:Class="SilverlightApplication1.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"
    >

    <Grid x:Name="LayoutRoot" Background="White">
        <StackPanel x:Name="stakpanel1" Background="Wheat">
            <TextBlock Margin="10,5,0,0"  Text="数据显示控件"
                        FontSize="17" FontWeight="Bold" Foreground="Azure" ></TextBlock>
            <TextBlock Text="订单" Margin="10,5,0,0" ></TextBlock>
            <sdk:DataGrid  x:Name="dataGrid1"  Height="120" Margin="5,5,5,5" RowDetailsVisibilityMode="VisibleWhenSelected"
             AutoGenerateColumns="False" SelectedIndex="1" >
                <sdk:DataGrid.Columns>
                    <sdk:DataGridTextColumn Header="订单号" Width="SizeToHeader" Binding="{Binding OrderID}" IsReadOnly="True">
                    </sdk:DataGridTextColumn>
                    <sdk:DataGridTextColumn Header="客户名称" Width="SizeToHeader" Binding="{Binding  CustomerName}" IsReadOnly="True">
                    </sdk:DataGridTextColumn>
                    <sdk:DataGridTextColumn Header="订单签订日期" Width="SizeToHeader" Binding="{Binding OrderDate}" IsReadOnly="True">
                    </sdk:DataGridTextColumn>
                    <sdk:DataGridTextColumn Header="是否变更" Width="SizeToHeader" Binding="{Binding IsChanged}" IsReadOnly="True">
                    </sdk:DataGridTextColumn>

                </sdk:DataGrid.Columns>

            </sdk:DataGrid>
            <sdk:DataPager x:Name="dataPager1" PageSize="1"  DisplayMode="FirstLastPreviousNextNumeric"   Source="{Binding ItemsSource,ElementName=dataGrid1}"
                            Background="Aquamarine"></sdk:DataPager>

            <sdk:DataGrid x:Name="Detail"
            Margin="5,5,5,5" RowDetailsVisibilityMode="VisibleWhenSelected"
                         AutoGenerateColumns="False">
                <sdk:DataGrid.Columns>
                    <sdk:DataGridTextColumn Header="订单号" Width="SizeToHeader" Binding="{Binding OrderID}" IsReadOnly="True">

                    </sdk:DataGridTextColumn>

                    <sdk:DataGridTextColumn Header="产品名称" Width="SizeToHeader" Binding="{Binding ProductName}" IsReadOnly="True">

                    </sdk:DataGridTextColumn>

                    <sdk:DataGridTextColumn Header="单价" Width="SizeToHeader" Binding="{Binding Price}" IsReadOnly="True">

                    </sdk:DataGridTextColumn>

                    <sdk:DataGridTextColumn Header="数量" Width="SizeToHeader" Binding="{Binding Quantity}" IsReadOnly="True">

                    </sdk:DataGridTextColumn>

                    <sdk:DataGridTextColumn Header="金额" Width="SizeToHeader" Binding="{Binding DisCount}" IsReadOnly="True">

                    </sdk:DataGridTextColumn>

                </sdk:DataGrid.Columns>


            </sdk:DataGrid>

            <sdk:DataPager x:Name="dataPager" PageSize="2"  DisplayMode="FirstLastPreviousNextNumeric"   Source="{Binding ItemsSource,ElementName=Detail}"
                            Background="Aquamarine"></sdk:DataPager>
        </StackPanel>


    </Grid>
</UserControl>

 


 

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;
using System.ComponentModel;
using System.Collections.ObjectModel;
using System.Windows.Data;



namespace SilverlightApplication1
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            dataGrid1.SelectionChanged +=
                new SelectionChangedEventHandler(dataGrid1_SelecdChanged);

            dataPager.PageIndexChanged += new EventHandler<EventArgs>(dataPager_PageIndexChanged);
            dataPager1.PageIndexChanged += new EventHandler<EventArgs>(dataPager1_PageIndexChanged);
            LoadDate();
        }

        void dataGrid1_SelecdChanged(object sender, SelectionChangedEventArgs e)
        {
            Order order = this.dataGrid1.SelectedItem as Order;
            if (order != null)
                this.Detail.ItemsSource = OrderDetails.GetOrderDetailByID(order.OrderId);
        }

        private void LoadDate()
        {
            PagedCollectionView pager = new PagedCollectionView(OrderDetails.GetAllOrderDetail());
            this.Detail.ItemsSource = pager;

            PagedCollectionView pager1 = new PagedCollectionView(Orders.GetSampleOrderList());
            this.dataGrid1.ItemsSource = pager1;
        }

        void dataPager1_PageIndexChanged(object sender, EventArgs e)
        {


        }
        void dataPager_PageIndexChanged(object sender, EventArgs e)
        {

            DataPager datapager = sender as DataPager;
            MessageBox.Show("当前是第" + dataPager.PageIndex.ToString() + "页");
        }
    }

    #region 数据
    public class Order
    {
        public string OrderId { get; set; }
        public string CustomerName { get; set; }
        public DateTime OrderDate { get; set; }
        public bool IsChanged { get; set; }
        public Order(string orderID, string customername, DateTime orderdate, bool ischanged)
        {
            this.OrderId = orderID;
            this.CustomerName = customername;
            this.OrderDate = orderdate;
            this.IsChanged = ischanged;
        }
    }

    public class OrderDetail
    {

        public string OrderID { get; set; }
        public string ProductName { get; set; }
        public decimal Price { get; set; }
        public int Quantity { get; set; }
        public decimal DisCount { get; set; }
        public OrderDetail(string orderid, string productname, decimal price, int quantity, decimal count)
        {
            this.OrderID = orderid;
            this.ProductName = productname;
            this.Price = price;
            this.Quantity = quantity;
            this.DisCount = count;
        }
    }

    public class Orders
    {

        public static List<Order> GetSampleOrderList()
        {
            return new List<Order>{
            new Order("001","A公司",DateTime.Now,true),
            new Order("002","B公司",DateTime.Now,false)};
        }
    }

    public class OrderDetails
    {
        private static List<OrderDetail> OrderDetaillist = new List<OrderDetail>
        {
            new OrderDetail("001","product_1",10,10,100),
            new OrderDetail("001","product_2",20,10,200),
            new OrderDetail("001","product_3",20,10,200),
            new OrderDetail("002","product_a",20.28M,10,200),
            new OrderDetail("002","product_b",20.9M,10,200),
            new OrderDetail("002","product_c",20.9M,90,200)
        };

        //得到当前编号的详情信息
        public static List<OrderDetail> GetOrderDetailByID(string orderid)
        {
            List<OrderDetail> oldorderdetail = new List<OrderDetail>();
            foreach (OrderDetail order in OrderDetaillist)
            {
                if (order.OrderID.CompareTo(orderid) == 0)
                {
                    oldorderdetail.Add(order);
                }
            }
            return oldorderdetail;
        }

        //得到全部的详细信息
        public static List<OrderDetail> GetAllOrderDetail()
        {
            return OrderDetaillist;
        }
    }
    #endregion

}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员敏敏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值