因为我一直没有在UserControl里面使用过QuickPager分页控件,我都是直接在.aspx里面使用,所以这个bug一直没有发现。后来告诉我他把分页控件放在了UserControl里面无法翻页的情况,检查之后才发现分页的事件没有传递到UserControl里面的分页控件里面,就是说分页控件没有得到分页事件。改了半天也没有找到从正规的方式来解决,所以只好采用了一个笨办法来解决。在UserControl里面使用分页控件的时候也稍稍有一点不同。
一般的情况是这么设置,
//定义QuickPager_SQL,设置Page属性
Pager1.PagerSQL.Page = this.Page;
在UserControl里面需要在多设置一个属性,其他的使用方法都是一样的。
//定义QuickPager_SQL,设置Page属性
Pager1.PagerSQL.Page = this.Page;
Pager1.UserControl = this;
Demo下载:http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html
使用方法:
using JYK.Data;
using JYK.Controls;
using JYK.Controls.Pager;
namespace JYK.Manage.Test.UC
{
/**//// <summary>
/// 在UserControl里面使用分页控件的方法
/// </summary>
public partial class UC_QuickPager_Test : System.Web.UI.UserControl
{
protected override void OnInit(EventArgs e)
{
//数据访问函数库的实例
DataAccessLibrary dal = DALFactory.CreateDAL();
Pager1.DAL = dal;
//定义QuickPager_SQL,设置Page属性
Pager1.PagerSQL.Page = this.Page;
Pager1.UserControl = this;
//设置显示数据的控件
Pager1.ShowDataControl = this.GV;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SetPagerInfo(); //设置表名、字段名等
}
}
给QuickPager_SQL 设置属性,以便拼接SQL#region 给QuickPager_SQL 设置属性,以便拼接SQL
private void SetPagerInfo()
{
Pager1.PagerSQL.TableName = "News_NewsInfo"; //表名或者视图名称
Pager1.PagerSQL.TableShowColumns = "*"; //需要显示的字段
Pager1.PagerSQL.TableIDColumn = "NewsID"; //主键名称,不支持复合主键
Pager1.PagerSQL.TableOrderByColumns = "NewsID"; //排序字段,根据分页算法而定,可以支持多个排序字段
Pager1.PagerSQL.TableQuery = ""; //查询条件
Pager1.PageSize = 4; //一页显示的记录数
//设置分页方式
Pager1.PagerSQL.SetPagerSQLKind = PagerSQLKind.MaxMin;
}
#endregion
}
}