winfrom之datagridview分页显示
这次datagridview绑定数据并分页操作,因为用到了webservice,所以代码会详细讲解。QueryByCondition是一个查询函数
客户端:
PageData pageData=new PageData();//用来接收数据
public bool QueryByCondition(Entity.ProductStatus status, int pageIndex)
{
SoapHeaderTransferData();//webservice 的soap身份验证,它的作用能够访问webservice服务端,如果你没有使用webservice,则不用加。
string query_condition = txt_title.Text.Trim().ToString();//查询条件
//返回string类型,序列化,其实是类实体转化为string,方便在webservice之间传输。
string str = ps.QueryByCondition(query_condition, (pm.ProductStatus)Enum.Parse(typeof(pm.ProductStatus),status.ToString()),
user_id, pageIndex, pageSize);//有五个参数,前三个是查询条件,后两个是分页条件,pageIndex是当前页根据自己的需要输入, pageSize是一页有多少条数据,也是根据需要输入
if (str == null)
{
return false;
}
else
{
//将str反序列化,获得类实体数据
pageData = VCommons.ObjectXmlExtensions.ToObj<Entity.Ot.PageData>(VCommons.Utils.UrlDecode(str));
this.DataGridViewProduct.AutoGenerateColumns = false;//设置datagridview不能够自动添加列
this.DataGridViewProduct.DataSource = pageData.Data;
DataGridViewProduct.ClearSelection();
lblPageCount.Text = pageData.TotalPage.ToString();
lbCurrentPage.Text = pageData.PageIndex.ToString();
return true;
}
}
服务端:
#region 按条件查询产品信息
[SoapHeader("myHeader")]
[WebMethod(EnableSession = true)]
public string QueryByCondition(string query_condition, Entity.ProductStatus status, string userid, int pageIndex, int pageSize)
{
//进行身份验证
if (myHeader.CheckLogin())
{
using (var repository = new DataE.VAERP.Repository())
{
//根据条件查询数据
var linq = from product in repository.GetIQueryable<Entity.VAERP.Product>()
join data in repository.GetIQueryable<Entity.VAERP.ProductData>()
on product.ID equals data.ProductID
where (product.UserID == userid || data.SellerID == userid) && product.Status == status
select product;
IQueryable<Entity.VAERP.Product> pros = string.IsNullOrWhiteSpace(query_condition) ? linq :
linq.Where(item => item.Title.StartsWith(query_condition) || item.Title.EndsWith(query_condition) || item.Title.IndexOf(query_condition) != -);
//进行分页操作
var pageData = new Entity.PagedList<Entity.VAERP.Product>(pros, pageIndex, pageSize); //序列化
var str = VCommons.Utils.UrlEncode(new Entity.Ot.PageData() { Data = pageData.ToArray(), PageIndex = pageData.PageIndex, PageSize = pageData.PageSize, TotalPage = pageData.TotalPages }.ToXml());
return str;
}
}
else
{
return VCommons.Utils.UrlEncode(new Entity.PagedList<Entity.VAERP.Product>(null, pageIndex, pageSize).ToXml());
}
}
#endregion
分页方法PagedList(,,)
public PagedList(IQueryable<T> source, int index, int pageSize)
{
if (source != null) //判断传过来的实体集是否为空
{
int total = source.Count();
this.TotalCount = total;
this.TotalPages = total / pageSize; if (total % pageSize > )
TotalPages++; this.PageSize = pageSize;
if (index > this.TotalPages)
{
index = this.TotalPages;
}
if (index < )
{
index = ;
}
this.PageIndex = index;
this.AddRange(source.Skip((index - ) * pageSize).Take(pageSize).ToList()); //Skip是跳到第几页,Take返回多少条
}
}
winfrom之datagridview分页显示的更多相关文章
- DataGridView 分页显示
DataGridView 分页显示函数 1.获取当前页的子数据表函数 public static DataTable GetPagedTable(DataTable dt, int PageIndex ...
- C# DataGridView分页显示
//导入命名空间部分省略 DBClass.DBExecute dbexecute = new DBExecute(); string connectionString = @"Data So ...
- winform里dataGridView分页代码,access数据库
winform里dataGridView分页,默认dataGridView是不分页的和webform里不一样,webform中GridView自带自带了分页. 现在c/s的程序很多时候也需要webfo ...
- C# 实现DataGridView分页功能
C#实现DataGridView分页功能 2010-07-17 13:45:42| 分类: C#|字号 订阅 从界面可以看到,在设计时需要一个DataGridView.BindingNavi ...
- C#关于分页显示
---<PS:本人菜鸟,大手子还请高台贵手> 以下是我今天在做分页时所遇到的一个分页显示问题,使用拼写SQL的方式写的,同类型可参考哦~ ------------------------- ...
- 多页的TIFF图片在aspx页面分页显示
一.逻辑实现:将数据库中的二进制TIFF图片读出并分页显示在页面上. 1.显示界面 public FrameDimension MyGuid; ; ; public static MemoryStre ...
- asp.net gridview 分页显示不出来的问题
使用gridview分页显示,在点击第二页的时候显示空白,无数据. 原因是页面刷新,绑定datatable未执行 解决方法: 1.将datatable设置为静态 2.在OnPageIndexChang ...
- SSRS(rdl报表)分页显示表头和对表头的冻结处理
基础环境 最近在公司做西门子某系统的二次开发,需要用到SQLServer Reporting Services(SSRS).我们用的SQL版本是SQLServer 2008 R2:在设计报表时,表格用 ...
- JSP分页显示实例(基于Bootstrap)
首先介绍一款简单利落的分页显示利器:bootstrap-paginator 效果截图: GitHub官方下载地址:https://github.com/lyonlai/bootstrap-pagina ...
随机推荐
- 第一册:lesson fifty nine。
原文: Is that all? A:I want some envelopes ,please? B:Do you want the large size or small size? A:The ...
- .Net NPOI 根据excel模板导出excel、直接生成excel
一.根据Excel模板导出excel 1.导入NPOI.dll 2.DAL中添加类ExportExcel.cs using NPOI.SS.UserModel; using System; usin ...
- C# CLR via 对象内存中堆的存储【类型对象指针、同步块索引】
最近在看书,看到了对象在内存中的存储方式. 讲到了对象存储在内存堆中,分配的空间除了类型对象的成员所需的内存量,还有额外的成员(类型对象指针. 同步块索引 ),看到这个我就有点不懂了,不知道类型对象指 ...
- mongodb "Element '{0}' does not match any field or property of class" 异常的解决方法
在序列化的对象上增加 [BsonIgnoreExtraElements]
- Java8 使用stream实现各种list操作
利用java8新特性,可以用简洁高效的代码来实现一些数据处理. 定义1个Apple对象: public class Apple { private Integer id; private String ...
- php环境安装
Windows安装 下载php压缩包, http://php.net/downloads.php, 一定要下载Windows版本的呦 将压缩包解压到指定目录下: 创建配置文件, 其中有两个配置文件在根 ...
- linux学习笔记-时间配置综述
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.时间类型分为: 1.网络时间(设置时区,ntp服务器同步的时间) 2.系统时间,当前系统所显示的时间 3.硬件(RTC)时间 ...
- Spring学习之旅(二)极速创建Spring框架java Web工程项目
编译工具:eclipse 1)创建Web工程:spring_web_helloworld 2)导入所需jar包: 3)创建实体类:同上篇博文 4)创建配置文件hellobean.xml.同上篇博文 不 ...
- Android为TV端助力 android 在5.0以后不允许使用隐式Intent方式来启动Service
android5.0以后不能使用隐式intent :需要指定Intent的ComponentName信息:intent.setComponent(xxx),或指定Intent的setPackage(& ...
- IDEA基于Maven Struts2搭建配置及示例
1.web.xml加载struts框架即过滤器,要注意struts版本不同过滤器配置也不同. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems ...