您的位置:首页 > 其它

datagrid 与 dataPager 分页

2012-04-05 23:11 302 查看
前景:列表加载数据并且分页,下班搞到现在,希望明天能用到。。。。。。
<UserControlxmlns: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"
>

<Gridx:Name="LayoutRoot"Background="White">
<StackPanelx:Name="stakpanel1"Background="Wheat">
<TextBlockMargin="10,5,0,0"Text="数据显示控件"
FontSize="17"FontWeight="Bold"Foreground="Azure"></TextBlock>
<TextBlockText="订单"Margin="10,5,0,0"></TextBlock>
<sdk:DataGridx:Name="dataGrid1"Height="120"Margin="5,5,5,5"RowDetailsVisibilityMode="VisibleWhenSelected"
AutoGenerateColumns="False"SelectedIndex="1">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumnHeader="订单号"Width="SizeToHeader"Binding="{BindingOrderID}"IsReadOnly="True">
</sdk:DataGridTextColumn>
<sdk:DataGridTextColumnHeader="客户名称"Width="SizeToHeader"Binding="{BindingCustomerName}"IsReadOnly="True">
</sdk:DataGridTextColumn>
<sdk:DataGridTextColumnHeader="订单签订日期"Width="SizeToHeader"Binding="{BindingOrderDate}"IsReadOnly="True">
</sdk:DataGridTextColumn>
<sdk:DataGridTextColumnHeader="是否变更"Width="SizeToHeader"Binding="{BindingIsChanged}"IsReadOnly="True">
</sdk:DataGridTextColumn>

</sdk:DataGrid.Columns>

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

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

</sdk:DataGridTextColumn>

<sdk:DataGridTextColumnHeader="产品名称"Width="SizeToHeader"Binding="{BindingProductName}"IsReadOnly="True">

</sdk:DataGridTextColumn>

<sdk:DataGridTextColumnHeader="单价"Width="SizeToHeader"Binding="{BindingPrice}"IsReadOnly="True">

</sdk:DataGridTextColumn>

<sdk:DataGridTextColumnHeader="数量"Width="SizeToHeader"Binding="{BindingQuantity}"IsReadOnly="True">

</sdk:DataGridTextColumn>

<sdk:DataGridTextColumnHeader="金额"Width="SizeToHeader"Binding="{BindingDisCount}"IsReadOnly="True">

</sdk:DataGridTextColumn>

</sdk:DataGrid.Columns>

</sdk:DataGrid>

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

</Grid>
</UserControl>





usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Net;
usingSystem.Windows;
usingSystem.Windows.Controls;
usingSystem.Windows.Documents;
usingSystem.Windows.Input;
usingSystem.Windows.Media;
usingSystem.Windows.Media.Animation;
usingSystem.Windows.Shapes;
usingSystem.ComponentModel;
usingSystem.Collections.ObjectModel;
usingSystem.Windows.Data;

namespaceSilverlightApplication1
{
publicpartialclassMainPage:UserControl
{
publicMainPage()
{
InitializeComponent();
dataGrid1.SelectionChanged+=
newSelectionChangedEventHandler(dataGrid1_SelecdChanged);

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

voiddataGrid1_SelecdChanged(objectsender,SelectionChangedEventArgse)
{
Orderorder=this.dataGrid1.SelectedItemasOrder;
if(order!=null)
this.Detail.ItemsSource=OrderDetails.GetOrderDetailByID(order.OrderId);
}

privatevoidLoadDate()
{
PagedCollectionViewpager=newPagedCollectionView(OrderDetails.GetAllOrderDetail());
this.Detail.ItemsSource=pager;

PagedCollectionViewpager1=newPagedCollectionView(Orders.GetSampleOrderList());
this.dataGrid1.ItemsSource=pager1;
}

voiddataPager1_PageIndexChanged(objectsender,EventArgse)
{

}
voiddataPager_PageIndexChanged(objectsender,EventArgse)
{

DataPagerdatapager=senderasDataPager;
MessageBox.Show("当前是第"+dataPager.PageIndex.ToString()+"页");
}
}

#region数据
publicclassOrder
{
publicstringOrderId{get;set;}
publicstringCustomerName{get;set;}
publicDateTimeOrderDate{get;set;}
publicboolIsChanged{get;set;}
publicOrder(stringorderID,stringcustomername,DateTimeorderdate,boolischanged)
{
this.OrderId=orderID;
this.CustomerName=customername;
this.OrderDate=orderdate;
this.IsChanged=ischanged;
}
}

publicclassOrderDetail
{

publicstringOrderID{get;set;}
publicstringProductName{get;set;}
publicdecimalPrice{get;set;}
publicintQuantity{get;set;}
publicdecimalDisCount{get;set;}
publicOrderDetail(stringorderid,stringproductname,decimalprice,intquantity,decimalcount)
{
this.OrderID=orderid;
this.ProductName=productname;
this.Price=price;
this.Quantity=quantity;
this.DisCount=count;
}
}

publicclassOrders
{

publicstaticList<Order>GetSampleOrderList()
{
returnnewList<Order>{
newOrder("001","A公司",DateTime.Now,true),
newOrder("002","B公司",DateTime.Now,false)};
}
}

publicclassOrderDetails
{
privatestaticList<OrderDetail>OrderDetaillist=newList<OrderDetail>
{
newOrderDetail("001","product_1",10,10,100),
newOrderDetail("001","product_2",20,10,200),
newOrderDetail("001","product_3",20,10,200),
newOrderDetail("002","product_a",20.28M,10,200),
newOrderDetail("002","product_b",20.9M,10,200),
newOrderDetail("002","product_c",20.9M,90,200)
};

//得到当前编号的详情信息
publicstaticList<OrderDetail>GetOrderDetailByID(stringorderid)
{
List<OrderDetail>oldorderdetail=newList<OrderDetail>();
foreach(OrderDetailorderinOrderDetaillist)
{
if(order.OrderID.CompareTo(orderid)==0)
{
oldorderdetail.Add(order);
}
}
returnoldorderdetail;
}

//得到全部的详细信息
publicstaticList<OrderDetail>GetAllOrderDetail()
{
returnOrderDetaillist;
}
}
#endregion

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: