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
}
相关文章推荐
- Sliverlight,为DataGrid添加外置的滚动条(ScrollBar)和分页(DataPager)
- .net3.5正统分页控件来了(ListView和DataPager)
- Silverlight中DataGrid控件动态生成列并结合DataPager进行分页
- Listview 利用Datapager进行分页
- ListView结合DataPager实现分页的功能(数据绑定时)
- .net3.5正统分页控件来了(ListView和DataPager)
- 用DataPager与ListView实现分页。
- 利用ListView和DataPager控件来对数据分页(转载)
- 【转】使用 Entity Framework + ListView + DataPager 实现数据分页
- 使用DataPager 显示记录数,分页
- vs2008中datapager分页问题的解决方法,用好的解决方法的请留言
- Silverlight客户端分页 DataPager控件的使用
- Silverlight - 没有RIA Services时使用Data Pager实现服务端数据分页
- datapager分页问题(点击两次)
- 利用ListView和DataPager控件来对数据分页
- ★ vs2008中分页控件DataPager ★
- 让DataPager分页控件实现服务器端分页
- datapager分页问题(点击两次)
- 如何使用在SL中使用Datapager分页控件
- silverlight分页控件DataPager使用要点