datalist控件怎么实现分页
我的代码如下,可是实现不了功能,找不到错误,点分页linkbutton的时候没反应,怎么回事啊后台
protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack)
{
MessageBind();
}
}
private void MessageBind()
{
string select = "SELECT * FROM product ORDER BY date DESC";
DataSet ds = Option.GetData(select, "product");
PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables[0].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 9;
NewsSum.Text = pds.DataSourceCount.ToString();
pds.CurrentPageIndex = Convert.ToInt32(IndexPage.Text) - 1;
SumPage.Text = pds.PageCount.ToString();
LinkUp.Enabled = true;
LinkDown.Enabled = true;
if (IndexPage.Text == "1")
{
LinkUp.Enabled = false;
}
if (IndexPage.Text == pds.PageCount.ToString())
{
LinkDown.Enabled = false;
}
DataList1.DataSource = pds;
DataList1.DataBind();
}
protected void LinkFirst_Click(object sender, EventArgs e)
{
IndexPage.Text = "1";
MessageBind();
}
protected void LinkUp_Click(object sender, EventArgs e)
{
IndexPage.Text = Convert.ToString(Convert.ToInt32(IndexPage.Text) - 1);
MessageBind();
}
protected void LinkDown_Click(object sender, EventArgs e)
{
IndexPage.Text = Convert.ToString(Convert.ToInt32(IndexPage.Text) + 1);
MessageBind();
}
protected void LinkLast_Click(object sender, EventArgs e)
{
IndexPage.Text = SumPage.Text;
MessageBind();
}
protected void LinkToSum_Click(object sender, EventArgs e)
{
if (IsValidNum(TextSum.Text.Trim()))
{
if (Convert.ToInt32(TextSum.Text.Trim()) > Convert.ToInt32(SumPage.Text))
{
Response.Write("<script>alert('您输入的页数已经超出范围!');</script>");
TextSum.Text = "";
}
else
{
IndexPage.Text = TextSum.Text.Trim();
MessageBind();
}
}
else
{
Response.Write("<script>alert('请输入整数!');</script>");
}
}
//判断修改的数据是否为有效的数据
public bool IsValidNum(string num)
{
return Regex.IsMatch(num, @"^\+?[1-9][0-9]*$");
}
//回指定长度字符
public string GetString(object str)
{
return Option.GetString(str, 30);
}
前台:
<table style="width: 770px; text-align: center;" cellpadding="0" cellspacing="0">
<tr>
<td style="width:770px; text-align: center; font-size:small; height:25px;">
<asp:LinkButton ID="LinkFirst" runat="server" onclick="LinkFirst_Click">首页</asp:LinkButton>
<asp:LinkButton ID="LinkUp" runat="server" onclick="LinkUp_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="LinkDown" runat="server" onclick="LinkDown_Click">下一页</asp:LinkButton>  
<asp:LinkButton ID="LinkLast" runat="server" onclick="LinkLast_Click">尾页</asp:LinkButton>
页次:<asp:Label ID="IndexPage" runat="server" Text="1" ForeColor="Red"></asp:Label>/<asp:Label ID="SumPage" runat="server" ></asp:Label>
共<asp:Label ID="NewsSum" runat="server" Text=""></asp:Label>条记录 15条记录/页
转到:<asp:TextBox ID="TextSum" runat="server" Width="30px" Text="1"></asp:TextBox> 页
<asp:LinkButton ID="LinkToSum" runat="server" onclick="LinkToSum_Click">确定</asp:LinkButton>
</td>
</tr>
</table>
各位大虾帮忙啊,尽量找我的错误,实在找不到给个有效的方法啊,谢谢 --------------------编程问答-------------------- 用分页控件吧
百度
aspnetpaper --------------------编程问答--------------------
private void indexListBind()--------------------编程问答-------------------- datalist分页与排序实例
{
try
{
string parID = Request.QueryString["id"].ToString();
int curPage = Convert.ToInt32(this.lb_pageIndex.Text) - 1;//获取当前页码,我用的是一个lable.当了中间变量
con = Admin_DB.getConn();
con.Open();
DataSet ds = new DataSet();
string Path = "~";
OleDbDataAdapter sda = new OleDbDataAdapter("select ID,'" + Path + "'+imagePath as imagePath,introduce from D_Picture where parID=@parID", con);
sda.SelectCommand.Parameters.Add(new OleDbParameter("@parID", parID));
sda.Fill(ds, "index");
System.Web.UI.WebControls.PagedDataSource ps = new PagedDataSource();//实例化分页数据源
ps.DataSource = ds.Tables["index"].DefaultView;//将要绑定在datalist上的datatable给分页数据源
ps.AllowPaging = true;
ps.PageSize = 8;//每页显示几条记录
ps.CurrentPageIndex = curPage;//设置当前页的索引(当前页码减1就是)
this.btn_up.Enabled = true;
this.btn_next.Enabled = true;
this.btn_frist.Enabled = true;
this.btn_end.Enabled = true;
endPage = ps.PageCount;
if (curPage == 0)//当是第一页是.上一页和首页的按钮不可用
{
this.btn_up.Enabled = false;
this.btn_frist.Enabled = false;
}
if (curPage == ps.PageCount - 1)//当是最后一页时下一页和最后一页的按钮不可用
{
this.btn_next.Enabled = false;
this.btn_end.Enabled = false;
}
this.indexList.DataSource = ps;
this.indexList.DataKeyField = "ID";
this.indexList.DataBind();
con.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
protected void btn_frist_Click(object sender, EventArgs e)
{
this.lb_pageIndex.Text = "1";
this.indexListBind();
}
protected void btn_up_Click(object sender, EventArgs e)
{
int page = int.Parse(this.lb_pageIndex.Text) - 1;
this.lb_pageIndex.Text = page.ToString();
this.indexListBind();
}
protected void btn_next_Click(object sender, EventArgs e)
{
int page = int.Parse(this.lb_pageIndex.Text) + 1;
this.lb_pageIndex.Text = page.ToString();
this.indexListBind();
}
protected void btn_end_Click(object sender, EventArgs e)
{
this.lb_pageIndex.Text = endPage.ToString();
this.indexListBind();
}
补充:.NET技术 , C#