Winform分页控件使用详细介绍

Winform分页控件使用详细介绍自从上篇随笔《Winform分页控件最新版本发布,并提供基于DotNetBar界面的版本》介绍了最新版本的分页控件,并提供下载使用后,很多人对分页控件非常感兴趣(毕竟Winform数据分页是很

原文地址为:
Winform分页控件使用详细介绍

自从上篇随笔《
Winform分页控件最新版本发布,并提供基于DotNetBar界面的版本》介绍了最新版本的分页控件,并提供下载使用后,很多人对分页控件非常感兴趣(毕竟Winform数据分页是很常见的),并关注该分页控件应该如何使用,其实分页控件在之前很多篇随笔中断断续续都有介绍,为了使大家对分页控件有个系统的认识,本篇详细介绍分页控件的一些属性设置及相关使用注意事项,使大家对该分页控件有一个更深的了解、跟系统的认识,以便在相关的项目开发中熟练使用。


分页控件效果

 Winform分页控件使用详细介绍

 

Winform分页控件使用详细介绍 

实现步骤

 1、在Visual Studio开发环境的工具箱中,添加一个分页控件(可以其他名称)的项目,然后选择WHC.Pager.WinControl.dll文件,导入分页控件的工具箱图标,如下所示。

其中WinGridViewPager和WinGridView两个控件就是我们常用到的分页控件,两者用法几乎一致,界面效果不同在于WinGridViewPager具有分页工具条,而WinGridView是提供显示所有内容,没有工具条。
Winform分页控件使用详细介绍

 

2、拖动到指定的窗体中。

3、在代码引用相关的代码实现动态调用。 

 

实现代码
1、在窗体加载实现中添加分页控件的实现代码,以On开始的是相关操作的实现事件,如OnPageChanged表示分页控件页面发生变化的时候,需要实现的事件处理(
这个是必须的),另外AppendedMenu是可以在分页控件自带菜单上增加的菜单,如下所示。注意,只要实现相关的事件处理,那么对应的上下文菜单将会出现,默认几个标准的上下文菜单如下所示,包含新建、编辑选定项、删除选定项、打印列表、刷新列表菜单。


注意,为了使分页控件能够显示总数,并记住当前的分页,那么在OnPageChanged实现中需要修改分页控件的

RecordCount和
CurrenetPageIndex

这两个属性。

Winform分页控件使用详细介绍

如果需要添加自己的菜单,则指定AppendedMenu对象即可。


Winform分页控件使用详细介绍

主要实现代码如下: 

 private void FrmCustomer_Load(object sender, EventArgs e)    

{    

    BindData();    

   

    
this
.winGridViewPager1.OnPageChanged 
+=
 
new
 EventHandler(winGridViewPager1_OnPageChanged);    
    

this
.winGridViewPager1.OnStartExport 
+=
 
new
 EventHandler(winGridViewPager1_OnStartExport);    
    

this
.winGridViewPager1.OnEditSelected 
+=
 
new
 EventHandler(winGridViewPager1_OnEditSelected);    
    

this
.winGridViewPager1.OnDeleteSelected 
+=
 
new
 EventHandler(winGridViewPager1_OnDeleteSelected);    
    

this
.winGridViewPager1.OnRefresh 
+=
 
new
 EventHandler(winGridViewPager1_OnRefresh);    
    

this
.winGridViewPager1.OnAddNew 
+=
 
new
 EventHandler(winGridViewPager1_OnAddNew);    
    

this
.winGridViewPager1.AppendedMenu 
=
 
this
.contextMenuStrip1;   
}

 

2、其他代码的实现如下所示,包含分页事件、刷新事件、删除事件、编辑事件、新增事件、导出Excel事件等。 

private
 
void
 winGridViewPager1_OnPageChanged(
object
 sender, EventArgs e)    
{    
    BindData();    
}    
   

private
 
void
 winGridViewPager1_OnRefresh(
object
 sender, EventArgs e)    
{    
    BindData();    
}    
   

private
 
void
 winGridViewPager1_OnDeleteSelected(
object
 sender, EventArgs e)    
{    
    

if
 (MessageUtil.ShowYesNoAndTips(

您确定删除选定的记录么?


==
 DialogResult.No)    
    {    
        

return
;    
    }    
   
    DataGridView grid 

=
 sender 
as
 DataGridView;    
    

if
 (grid 
!=
 
null
)    
    {    
        

foreach
 (DataGridViewRow row 
in
 grid.SelectedRows)    
        {    
            BLLFactory

<
Customer
>
.Instance.Delete(row.Cells[
0
].Value.ToString());    
        }    
        BindData();    
    }    
}    
   

private
 
void
 winGridViewPager1_OnEditSelected(
object
 sender, EventArgs e)    
{    
    DataGridView grid 

=
 sender 
as
 DataGridView;    
    

if
 (grid 
!=
 
null
)    
    {    
        

foreach
 (DataGridViewRow row 
in
 grid.SelectedRows)    
        {    
            FrmEditCustomer dlg 

=
 
new
 FrmEditCustomer();    
            dlg.ID 

=
 row.Cells[
0
].Value.ToString();    
            

if
 (DialogResult.OK 
==
 dlg.ShowDialog())    
            {    
                BindData();    
            }    
   
            

break
;    
        }    
    }    
}    
   

private
 
void
 winGridViewPager1_OnAddNew(
object
 sender, EventArgs e)    
{    
    btnAddNew_Click(

null

null
);    
}    
   

private
 
void
 winGridViewPager1_OnStartExport(
object
 sender, EventArgs e)    
{    
    

string
 
where
 
=
 GetSearchSql();    
    

this
.winGridViewPager1.AllToExport 
=
 BLLFactory
<
Customer
>
.Instance.FindToTable(
where
);    
}    
   

private
 
void
 BindData()    
{   
    

#region
 添加别名解析    

    

this
.winGridViewPager1.AddColumnAlias(

ID



编号

);    
    

this
.winGridViewPager1.AddColumnAlias(

Number



客户编号

);    
    

this
.winGridViewPager1.AddColumnAlias(

Name



客户名称

);    
    

this
.winGridViewPager1.AddColumnAlias(

Type



客户类型

);    
    

this
.winGridViewPager1.AddColumnAlias(

Area



客户地区

);    
    

this
.winGridViewPager1.AddColumnAlias(

Company



客户单位

);    
    

this
.winGridViewPager1.AddColumnAlias(

Address



客户地址

);    
    

this
.winGridViewPager1.AddColumnAlias(

Telephone1



电话1

);    
    

this
.winGridViewPager1.AddColumnAlias(

Telephone2



电话2

);    
    

this
.winGridViewPager1.AddColumnAlias(

Telephone3



电话3

);    
    

this
.winGridViewPager1.AddColumnAlias(

Telephone4



电话4

);    
    

this
.winGridViewPager1.AddColumnAlias(

Telephone5



电话5

);    
    

this
.winGridViewPager1.AddColumnAlias(

CreateDate



开户日期

);    
    

this
.winGridViewPager1.AddColumnAlias(

Shop_ID



分店ID

);    
    

this
.winGridViewPager1.AddColumnAlias(

Note



备注

);    
    

this
.winGridViewPager1.AddColumnAlias(

LastUpdated



更新日期

);   
    

#endregion
    

   
   
    

string
 
where
 
=
 GetSearchSql();    
    

this
.winGridViewPager1.DataSource 
=
 BLLFactory
<
Customer
>
.Instance.Find(
where

this
.winGridViewPager1.PagerInfo);    
    

this
.winGridViewPager1.dataGridView1.Refresh();    
}

 

 

3、如果不想把所有的实体类属性或者表字段都显示处理(默认全部显示),那么可以设置属性DisplayColumns即可。
this.winGridViewPager1.DisplayColumns = ID,ItemNo,ItemName,Manufacture,MapNo,Specification,StockQuantity,AlarmQuantity,WareHouse;   

4、设备报表标题如下所示。 

this.winGridViewPager1.PrintTitle = Portal.gc.gAppUnit +  —  + 备件信息报表;   

 

5、绑定自定义Datatable对象的实现。

private
 
void
 BindData()    
{    
    

this
.winGridViewPager1.DisplayColumns 
=
 

ID,ItemNo,ItemName,Manufacture,MapNo,Specification,Material,ItemBigType,ItemType,


Unit,Price,Source,StoragePos,UsagePos,StockQuantity,AlarmQuantity,Note,Dept,WareHouse

;   


    
#region
 添加别名解析    

   
    

this
.winGridViewPager1.AddColumnAlias(

ID



编号

);    
    

this
.winGridViewPager1.AddColumnAlias(

ItemNo



项目编号

);    
    

this
.winGridViewPager1.AddColumnAlias(

ItemName



项目名称

);    
    

this
.winGridViewPager1.AddColumnAlias(

Manufacture



供货商

);    
    

this
.winGridViewPager1.AddColumnAlias(

MapNo



图号

);    
    

this
.winGridViewPager1.AddColumnAlias(

Specification



规格型号

);    
    

this
.winGridViewPager1.AddColumnAlias(

Material



材质

);    
    

this
.winGridViewPager1.AddColumnAlias(

ItemBigType



备件属类

);    
    

this
.winGridViewPager1.AddColumnAlias(

ItemType



备件类别

);    
    

this
.winGridViewPager1.AddColumnAlias(

Unit



单位

);    
    

this
.winGridViewPager1.AddColumnAlias(

Price



单价

);    
    

this
.winGridViewPager1.AddColumnAlias(

Source



来源

);    
    

this
.winGridViewPager1.AddColumnAlias(

StoragePos



库位

);    
    

this
.winGridViewPager1.AddColumnAlias(

UsagePos



使用位置

);    
    

this
.winGridViewPager1.AddColumnAlias(

StockQuantity



当前库存

);    
    

this
.winGridViewPager1.AddColumnAlias(

WareHouse



所属库房

);    
    

this
.winGridViewPager1.AddColumnAlias(

Dept



所属部门

);    
    

this
.winGridViewPager1.AddColumnAlias(

Note



备注

);   
  
    

#endregion
    

   
    

string
 
where
 
=
 GetConditionSql();    
    List

<
ItemDetailInfo
>
 list 
=
 BLLFactory
<
ItemDetail
>
.Instance.Find(
where

this
.winGridViewPager1.PagerInfo);    
    

string
 tableColumns 
=
 

ID|int,ItemNo,ItemName,StockQuantity|int,Manufacture,MapNo,Specification,Material,ItemBigType,ItemType,


Unit,Price
|
decimal
,Source,StoragePos,UsagePos,Note,WareHouse,Dept

;    


    DataTable dt 
=
 DataTableHelper.CreateTable(tableColumns);    
    DataRow dr 

=
 
null
;    
    

foreach
 (ItemDetailInfo info 
in
 list)    
    {    
        dr 

=
 dt.NewRow();    
        dr[


ID


=
 info.ID;    
        dr[


ItemBigType


=
 info.ItemBigType;    
        dr[


ItemName


=
 info.ItemName;    
        dr[


ItemNo


=
 info.ItemNo;    
        dr[


ItemType


=
 info.ItemType;    
        dr[


Manufacture


=
 info.Manufacture;    
        dr[


MapNo


=
 info.MapNo;    
        dr[


Material


=
 info.Material;    
        dr[


Note


=
 info.Note;    
        dr[


Price


=
 info.Price;    
        dr[


Source


=
 info.Source;    
        dr[


Specification


=
 info.Specification;    
        dr[


StoragePos


=
 info.StoragePos;    
        dr[


Unit


=
 info.Unit;    
        dr[


UsagePos


=
 info.UsagePos;    
        dr[


WareHouse


=
 info.WareHouse;    
        dr[


Dept


=
 info.Dept;    
   
        StockInfo stockInfo 

=
 BLLFactory
<
Stock
>
.Instance.FindByItemNo(info.ItemNo);    
        

int
 quantity 
=
 
0
;    
        

if
 (stockInfo 
!=
 
null
)    
        {    
            quantity 

=
 stockInfo.StockQuantity;    
        }    
        dr[


StockQuantity


=
 quantity;    
        dt.Rows.Add(dr);    
    }    
   
    

this
.winGridViewPager1.DataSource 
=
 dt.DefaultView;
//
new WHC.Pager.WinControl.SortableBindingList<ItemDetailInfo>(list);    


    
this
.winGridViewPager1.PrintTitle 
=
 Portal.gc.gAppUnit 
+
 

 — 

 
+
 

备件信息报表

;    
}

  

 

下面提供相关分页控件的下载地址:

1、传统界面的的Winform分页控件:http://files.cnblogs.com/wuhuacong/WHC.Pager.WinControl.zip  

2、Dotnetbar界面效果的Winform分页控件:http://files.cnblogs.com/wuhuacong/WHC.Pager.WinControlEx.zip   

 

WInform分页控件的CHM格式帮助文档:http://files.cnblogs.com/wuhuacong/WinformPagerHelp.rar 

 

转载请注明本文地址:
Winform分页控件使用详细介绍

今天的文章Winform分页控件使用详细介绍分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12811.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注