自定义分页控件对Repeater进行分页数据显示不了
我今天写了个自定义的控件用于实现分页功能,但是在点击下一页的时候数据没了。宿主页面代码:
private static ICanShuData o_canshudata;
private static DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//存放当前页索引
Session["Current"] = "1";
int Count;
//注册分页处理事件
Paging.PageChanged = new Paging.ChangPageEventhandler(Paging_ChangPage);
o_canshudata = DALFactory.CreateCanShuDataInstance();
int Current = Convert.ToInt32(Session["Current"].ToString());
//绑定第一页的数据
dt = o_canshudata.GetDanYanData(2, Current, out Count);
repDanYuan.DataSource = dt;
repDanYuan.DataBind();
//存放总页数
Session["Count"] = Count.ToString();
if (Count <= 0)
{
return;
}
}
}
/// <summary>
/// 分页处理事件
/// </summary>
void Paging_ChangPage()
{
int Current = Convert.ToInt32(Session["Current"].ToString());
DataPaging(2, Current);
}
private void DataPaging(int pageSize, int pageIndex)
{
int count;
dt = o_canshudata.GetDanYanData(pageSize, pageIndex, out count);
repDanYuan.DataSource = dt;
repDanYuan.DataBind();
}
用户控件代码:
private static ICanShuData o_canshudata;
private static DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//存放当前页索引
Session["Current"] = "1";
int Count;
//注册分页处理事件
Paging.PageChanged = new Paging.ChangPageEventhandler(Paging_ChangPage);
o_canshudata = DALFactory.CreateCanShuDataInstance();
int Current = Convert.ToInt32(Session["Current"].ToString());
//绑定第一页的数据
dt = o_canshudata.GetDanYanData(2, Current, out Count);
repDanYuan.DataSource = dt;
repDanYuan.DataBind();
//存放总页数
Session["Count"] = Count.ToString();
if (Count <= 0)
{
return;
}
}
}
/// <summary>
/// 分页处理事件
/// </summary>
void Paging_ChangPage()
{
int Current = Convert.ToInt32(Session["Current"].ToString());
DataPaging(2, Current);
}
private void DataPaging(int pageSize, int pageIndex)
{
int count;
dt = o_canshudata.GetDanYanData(pageSize, pageIndex, out count);
repDanYuan.DataSource = dt;
repDanYuan.DataBind();
}
}
跪求大神指教!!!!
点击下一页的按钮后,数据可以取出来,也绑定到Repeater控件上了,但就是显示不出来 --------------------编程问答-------------------- 有没有人看啊,谁来看一下啊 --------------------编程问答-------------------- --------------------编程问答-------------------- 来个人看看吧 --------------------编程问答--------------------
太乱了 眼花 楼主抱歉啊 --------------------编程问答-------------------- 楼主写了太复杂了吧,使用自定义分页控件多简单啊。给你看个事例,希望对你有帮助。
引用一个自定义控件
在页面上
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" width="100%" UrlPaging="True" CssClass="paginator" CurrentPageButtonClass="cpb" HorizontalAlign="center" PageSize="5" UrlPageIndexName="page" OnPageChanged="anp_PageChanged"></webdiyer:AspNetPager>
.cs部分代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DoDataBind();
}
}
//绑定数据
public void DoDataBind()
{
string sql = " select * from stu";
DataSet ds = new DataSet();
using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["stuConnectionString"].ConnectionString))
{
cn.Open();
SqlCommand cm = new SqlCommand(sql, cn);
SqlDataAdapter da = new SqlDataAdapter(cm);
da.Fill(ds);
}
if (ds != null)
{
PagedDataSource pds = new PagedDataSource();
AspNetPager1.RecordCount = ds.Tables[0].Rows.Count;//数据的总行数
pds.DataSource = ds.Tables[0].DefaultView;//pds 管理数据
pds.AllowPaging = true;//允许分页
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;//当前的页码
pds.PageSize = AspNetPager1.PageSize;
Repeater1.DataSource = pds;
Repeater1.DataBind();
}
}
protected void anp_PageChanged(object src, EventArgs e)
{
DoDataBind();
}
补充:.NET技术 , ASP.NET