主页面
过滤控件
自定义GridView控件
分页控件;GridView控件中的PageIndex发生
public delegate void DataLoadingEventHandler(object sender, DataLoadingEventArgs e);
*.顶层定义IPagination接口,和IGridViewControl<T>接口
.IPagination接口
int PageIndex;
int RecordCount;
string UrlFormat;
.IGridViewControl<T>接口
event DataLoadingEventHandler DataLoading;
GridView GridView;
IEnumerable<T> ListData;
1.分页控件
分页控件实现IPagination接口
public int PageIndex;//第几页
public int RecordCount;//一页的记录容量
public string UrlFormat;//分页链接的url格式
public void Refresh();//刷新分页
private Initial();//初始化分页
2.自定义GridView控件
GridView实现IPagination接口和IGridViewControl<T>接口
在PageIndex赋值时触发DataLoading事件
在UrlFormat赋值时调用Pagination的Refresh刷新分页url
需要与根据过滤控件确定数据源的事件需要添加事件委托以供主页面调用触发。如RowCommand事件等,数据更改在控件中做,主页面注意保证查询
条件不变,并刷新分页。
3.过滤控件
将点击过滤事件添加委托给主页面调用触发
将查询条件设置成共有属性,保存到ViewState中
第一次加载时,根据参数初始化查询条件控件
点击过滤时,将查询条件变化赋值给查询条件属性
4.主页面
每次加载绑定委托的事件方法
第一次加载设定分类模式,初始化控件的属性,设置分页控件Url格式
过滤事件先到过滤控件中处理保存查询条件(自动),然后设置GridView控件的PageIndex加载数据,最后设置分页控件Url格式(分页Url刷新)
排序事件设定排序项和升降序,然后加载数据,刷新分页Url
其他GridView事件都需要保证:最后加载数据和刷新分页Url
*.查询实现
主页面的DataLoading委托事件绑定的方法处理数据的加载,调用逻辑层的方法,需要传的参数有查询排序条件,第几页,页面容量,(如果项很多
的话就封装到一个查询条件对象中),返回类型的总数数目。具体实现就交给逻辑层方法调用的数据访问层方法了。
浙公网安备 33010602011771号