手写分页,求原码?解决后立刻给分。分不多了见谅 我平常用gridview来绑定dataset从来也没有用过datatable,所以datatable从来没有用过更别谈分页了。想求一个源代码,给datatable绑定数据,分页,实现增删改查像gridview那样的。解决后立刻结贴。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 控件分页的using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.OleDb;using System.IO;using System.Drawing;public partial class display_display : System.Web.UI.Page{ int CurrentPage;//当前页数 int PageSize; //每页条数 int PageCount; //总页数 int RecordCount;//总条数 public string SubStr(string sString, int nLeng) { if (sString.Length <= nLeng) { return sString; } string sNewStr = sString.Substring(0, nLeng); sNewStr = sNewStr + "..."; return sNewStr; } protected string FormatURL(object strArgument) { return "image.aspx?id=" + strArgument.ToString(); } private void Page_Load(object sender, System.EventArgs e) { string pic = Request["Pic_ID"]; PageSize = 9;//每页10条记录 if (!Page.IsPostBack) { CurrentPage = 0;//当前页习惯设为0 ViewState["PageIndex"] = 0;//页索引也设为0 //计算总共有多少记录 RecordCount = CalculateRecord(); //计算总共有多少页 if (RecordCount % PageSize == 0) { PageCount = RecordCount / PageSize; } else { PageCount = RecordCount / PageSize + 1; } this.TotalLbl.Text = PageCount.ToString();//显示总页数 ViewState["PageCount"] = PageCount;//会话session 对整个 application 有效 ,而视图状态 viewstate相当于某个页面的 session this.DataListBind();//不可以放在初始化条件之前就绑定,那样的话,如果仅有一页的数据,“下一页”页仍然显示 } } //计算总共有多少条记录 private int CalculateRecord() { try { int recordCount; OleDbConnection oc = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath(@"~\App_Data\DataBase.aspx")); //数据库使用Northwind; oc.Open(); string OleDb = "select count(*) as [count] from Picture"; OleDbCommand cmd = new OleDbCommand(OleDb, oc); OleDbDataReader sdr = cmd.ExecuteReader(); if (sdr.Read()) { recordCount = Int32.Parse(sdr["count"].ToString()); } else { recordCount = 0; } sdr.Close(); oc.Close(); return recordCount; } catch (Exception ex) { throw new Exception(ex.Message); } } //将数据绑定到Datalist控件 public void DataListBind() { try { int StartIndex = CurrentPage * PageSize;//设定导入的起终地址 string OleDb = "SELECT [Pic_ID], [Pic],[Pic_Title] FROM [Picture] order by [Pic_id] desc"; DataSet ds = new DataSet(); OleDbConnection oc = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath(@"~\App_Data\DataBase.aspx")); oc.Open(); OleDbDataAdapter sda = new OleDbDataAdapter(OleDb, oc); sda.Fill(ds, StartIndex, PageSize, "Picture");//这是sda.Fill方法的第一次重载,里面的变量分别是数据集DataSet ,开始记录数StartRecord,最大的记录数MaxRecord,数据表名TableName this.DataList1.DataSource = ds.Tables["Picture"].DefaultView; this.DataList1.DataBind(); this.PreviousLB.Enabled = true; this.NextLB.Enabled = true; if (CurrentPage == (PageCount - 1)) this.NextLB.Enabled = false;//当为最后一页时,下一页链接按钮不可用 if (CurrentPage == 0) this.PreviousLB.Enabled = false;//当为第一页时,上一页按钮不可用 this.CurrentLbl.Text = (CurrentPage + 1).ToString();//当前页数 } catch (Exception ex) { throw new Exception(ex.Message); } } public void LinkButton_Click(Object sender, CommandEventArgs e)//自己编写的按钮点击事件 { CurrentPage = (int)ViewState["PageIndex"];//获得当前页索引 PageCount = (int)ViewState["PageCount"];//获得总页数 string cmd = e.CommandName; //判断cmd,以判定翻页方向 switch (cmd) { case "prev"://上一页 if (CurrentPage > 0) CurrentPage--; break; case "next": if (CurrentPage < (PageCount - 1)) CurrentPage++;//下一页 break; case "first"://第一页 CurrentPage = 0; break; case "end"://最后一页 CurrentPage = PageCount - 1; break; case "jump"://跳转到第几页 if (this.TextBox1.Text.Trim() == "" || Int32.Parse(this.TextBox1.Text.Trim()) > PageCount)//如果输入数字为空或超出范围则返回 { return; } else { CurrentPage = Int32.Parse(this.TextBox1.Text.ToString()) - 1; break; } } ViewState["PageIndex"] = CurrentPage;//获得当前页 this.DataListBind();//重新将DataList绑定到数据库 } protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { ImageButton ibt = (ImageButton)sender; this.Response.Redirect(@"~\display\pic.aspx?Pic_ID=" + ibt.CommandArgument); // Response.Redirect(@"~\photo.aspx?pic_id =" + ImageButton1.CommandArgument.ToString()); }} 代码SQL分页的using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Text;namespace ImportantProblem{ public partial class Finish : System.Web.UI.Page { int CurrentPage;//当前页数 int PageSize; //每页条数 int PageCount; //总页数 int RecordCount;//总条数 protected void Page_Load(object sender, EventArgs e) { PageSize = 10;//每页10条记录 if (!this.IsPostBack) { CurrentPage = 0;//当前页习惯设为0 ViewState["PageIndex"] = 0;//页索引也设为0 //计算总共有多少记录 RecordCount = returnRow(); //计算总共有多少页 if (RecordCount % PageSize == 0) { PageCount = RecordCount / PageSize; } else { PageCount = RecordCount / PageSize + 1; } this.TotalLbl.Text = PageCount.ToString();//显示总页数 ViewState["PageCount"] = PageCount;//会话session 对整个 application 有效 ,而视图状态 viewstate相当于某个页面的 session GetShowData(); //不可以放在初始化条件之前就绑定,那样的话,如果仅有一页的数据,“下一页”页仍然显示 } } #region 返回部门行数 /// <summary> /// 返回部门行数 /// </summary> /// <param name="sWhere"></param> /// <returns></returns> private int returnRow() { StringBuilder sb = new StringBuilder(); sb.Append("select count(*) from message where (ZRFLAG = 0 or ZGFLAG = 0 or DBFLAG = 0) "); //Class.DbHelperOleDb.ExecuteScalar(sb.ToString()); return Class.DbHelperOleDb.ExecuteScalar(sb.ToString()); } #endregion private void GetShowData() { int StartIndex = CurrentPage * PageSize;//设定导入的起终地址 this.PreviousLB.Enabled = true; this.NextLB.Enabled = true; if (CurrentPage == (PageCount - 1)) this.NextLB.Enabled = false;//当为最后一页时,下一页链接按钮不可用 if (CurrentPage == 0) this.PreviousLB.Enabled = false;//当为第一页时,上一页按钮不可用 this.CurrentLbl.Text = (CurrentPage + 1).ToString();//当前页数 StringBuilder sb = new StringBuilder(); if (CurrentPage == 0 || ViewState["PageIndex"] == null) { sb.Append("SELECT TOP " + PageSize + " *"); sb.Append(" FROM message "); sb.Append(" where (DBFLAG = 1) "); } else { sb.Append("SELECT TOP " + PageSize + " *"); sb.Append(" FROM message "); sb.Append(" WHERE (messageid NOT IN "); sb.Append(" (SELECT TOP " + StartIndex + " messageid "); sb.Append(" FROM message where (DBFLAG = 1) )) and ( DBFLAG = 1) "); } Session["CurrentPage"] = true; this.MessageShow1.GetSelectData(sb.ToString (), " order by sjwcsJ DESC ", true); Session["CurrentPage"] = false; } public void LinkButton_Click(Object sender, CommandEventArgs e)//自己编写的按钮点击事件 { CurrentPage = (int)ViewState["PageIndex"];//获得当前页索引 PageCount = (int)ViewState["PageCount"];//获得总页数 string cmd = e.CommandName; //判断cmd,以判定翻页方向 switch (cmd) { case "prev"://上一页 if (CurrentPage > 0) CurrentPage--; break; case "next": if (CurrentPage < (PageCount - 1)) CurrentPage++;//下一页 break; case "first"://第一页 CurrentPage = 0; break; case "end"://最后一页 CurrentPage = PageCount - 1; break; case "jump"://跳转到第几页 if (this.TextBox1.Text.Trim() == "" || Int32.Parse(this.TextBox1.Text.Trim()) > PageCount)//如果输入数字为空或超出范围则返回 { return; } else { CurrentPage = Int32.Parse(this.TextBox1.Text.ToString()) - 1; break; } } ViewState["PageIndex"] = CurrentPage;//获得当前页 this.GetShowData();//重新将DataList绑定到数据库 } }} select DISTINCT * from BOOK_ADDR 前台分页按钮的控件在SQL语句分页和控件分页都可以用 <asp:LinkButton ID="FirstLB" runat="server" CommandName="first" OnCommand="LinkButton_Click">第一页</asp:LinkButton> <asp:LinkButton ID="PreviousLB" runat="server" CommandName="prev" OnCommand="LinkButton_Click">上一页</asp:LinkButton> <asp:LinkButton ID="NextLB" runat="server" CommandName="next" OnCommand="LinkButton_Click">下一页</asp:LinkButton> <asp:LinkButton ID="EndLB" runat="server" CommandName="end" OnCommand="LinkButton_Click">最后一页</asp:LinkButton> 总<asp:Label ID="TotalLbl" runat="server"></asp:Label>页 当前第<asp:Label ID="CurrentLbl" runat="server"></asp:Label>页 <asp:LinkButton ID="JumpLB" runat="server" CommandName="jump" OnCommand="LinkButton_Click">跳到</asp:LinkButton>第 <asp:TextBox ID="TextBox1" runat="server" Width="90px"></asp:TextBox> 页 从下往上显示 数据读取的问题 asp.net gridview作分页显示时,有点问题,解决全给他分了。 本人第一次在本机上搭建asp.net的一个tourEx的旅游站点注册出错了,帮忙看看 往数据库中插入一条中文数据,有的正常,有的变成问号,怎么办? 域名和空间 如何将所有的程序编译成dll档 asp.net 怎样调用 ODBC 连接数据库!! 请问大家asp的文件能直接倒入到asp.net吗? C#图片去黑边 Atlas中ScriptManager的SetFocus方法获得焦点后不能输入中文? 请问如何上传视频,并且更改视频的文件名,最后生成缩略图阿
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.IO;
using System.Drawing;public partial class display_display : System.Web.UI.Page
{
int CurrentPage;//当前页数
int PageSize; //每页条数
int PageCount; //总页数
int RecordCount;//总条数
public string SubStr(string sString, int nLeng)
{
if (sString.Length <= nLeng)
{
return sString;
}
string sNewStr = sString.Substring(0, nLeng);
sNewStr = sNewStr + "...";
return sNewStr;
}
protected string FormatURL(object strArgument)
{
return "image.aspx?id=" + strArgument.ToString();
}
private void Page_Load(object sender, System.EventArgs e)
{
string pic = Request["Pic_ID"]; PageSize = 9;//每页10条记录
if (!Page.IsPostBack)
{
CurrentPage = 0;//当前页习惯设为0
ViewState["PageIndex"] = 0;//页索引也设为0
//计算总共有多少记录
RecordCount = CalculateRecord();
//计算总共有多少页
if (RecordCount % PageSize == 0)
{
PageCount = RecordCount / PageSize;
}
else
{
PageCount = RecordCount / PageSize + 1;
} this.TotalLbl.Text = PageCount.ToString();//显示总页数
ViewState["PageCount"] = PageCount;//会话session 对整个 application 有效 ,而视图状态 viewstate相当于某个页面的 session this.DataListBind();//不可以放在初始化条件之前就绑定,那样的话,如果仅有一页的数据,“下一页”页仍然显示 }
}
//计算总共有多少条记录
private int CalculateRecord()
{
try
{
int recordCount;
OleDbConnection oc = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath(@"~\App_Data\DataBase.aspx")); //数据库使用Northwind;
oc.Open();
string OleDb = "select count(*) as [count] from Picture";
OleDbCommand cmd = new OleDbCommand(OleDb, oc);
OleDbDataReader sdr = cmd.ExecuteReader(); if (sdr.Read())
{
recordCount = Int32.Parse(sdr["count"].ToString());
}
else
{
recordCount = 0;
} sdr.Close();
oc.Close();
return recordCount;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
//将数据绑定到Datalist控件
public void DataListBind()
{
try
{
int StartIndex = CurrentPage * PageSize;//设定导入的起终地址
string OleDb = "SELECT [Pic_ID], [Pic],[Pic_Title] FROM [Picture] order by [Pic_id] desc";
DataSet ds = new DataSet();
OleDbConnection oc = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath(@"~\App_Data\DataBase.aspx"));
oc.Open(); OleDbDataAdapter sda = new OleDbDataAdapter(OleDb, oc);
sda.Fill(ds, StartIndex, PageSize, "Picture");//这是sda.Fill方法的第一次重载,里面的变量分别是数据集DataSet ,开始记录数StartRecord,最大的记录数MaxRecord,数据表名TableName
this.DataList1.DataSource = ds.Tables["Picture"].DefaultView;
this.DataList1.DataBind();
this.PreviousLB.Enabled = true;
this.NextLB.Enabled = true;
if (CurrentPage == (PageCount - 1)) this.NextLB.Enabled = false;//当为最后一页时,下一页链接按钮不可用
if (CurrentPage == 0) this.PreviousLB.Enabled = false;//当为第一页时,上一页按钮不可用
this.CurrentLbl.Text = (CurrentPage + 1).ToString();//当前页数 }
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
public void LinkButton_Click(Object sender, CommandEventArgs e)//自己编写的按钮点击事件
{
CurrentPage = (int)ViewState["PageIndex"];//获得当前页索引
PageCount = (int)ViewState["PageCount"];//获得总页数
string cmd = e.CommandName; //判断cmd,以判定翻页方向
switch (cmd)
{
case "prev"://上一页
if (CurrentPage > 0) CurrentPage--;
break; case "next":
if (CurrentPage < (PageCount - 1)) CurrentPage++;//下一页
break; case "first"://第一页
CurrentPage = 0;
break; case "end"://最后一页
CurrentPage = PageCount - 1;
break; case "jump"://跳转到第几页
if (this.TextBox1.Text.Trim() == "" || Int32.Parse(this.TextBox1.Text.Trim()) > PageCount)//如果输入数字为空或超出范围则返回
{
return;
}
else
{
CurrentPage = Int32.Parse(this.TextBox1.Text.ToString()) - 1;
break;
}
}
ViewState["PageIndex"] = CurrentPage;//获得当前页 this.DataListBind();//重新将DataList绑定到数据库
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
ImageButton ibt = (ImageButton)sender;
this.Response.Redirect(@"~\display\pic.aspx?Pic_ID=" + ibt.CommandArgument);
// Response.Redirect(@"~\photo.aspx?pic_id =" + ImageButton1.CommandArgument.ToString());
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;namespace ImportantProblem
{
public partial class Finish : System.Web.UI.Page
{
int CurrentPage;//当前页数
int PageSize; //每页条数
int PageCount; //总页数
int RecordCount;//总条数
protected void Page_Load(object sender, EventArgs e)
{
PageSize = 10;//每页10条记录
if (!this.IsPostBack)
{
CurrentPage = 0;//当前页习惯设为0
ViewState["PageIndex"] = 0;//页索引也设为0
//计算总共有多少记录
RecordCount = returnRow();
//计算总共有多少页
if (RecordCount % PageSize == 0)
{
PageCount = RecordCount / PageSize;
}
else
{
PageCount = RecordCount / PageSize + 1;
} this.TotalLbl.Text = PageCount.ToString();//显示总页数
ViewState["PageCount"] = PageCount;//会话session 对整个 application 有效 ,而视图状态 viewstate相当于某个页面的 session
GetShowData(); //不可以放在初始化条件之前就绑定,那样的话,如果仅有一页的数据,“下一页”页仍然显示
}
}
#region 返回部门行数
/// <summary>
/// 返回部门行数
/// </summary>
/// <param name="sWhere"></param>
/// <returns></returns>
private int returnRow()
{
StringBuilder sb = new StringBuilder();
sb.Append("select count(*) from message where (ZRFLAG = 0 or ZGFLAG = 0 or DBFLAG = 0) ");
//Class.DbHelperOleDb.ExecuteScalar(sb.ToString());
return Class.DbHelperOleDb.ExecuteScalar(sb.ToString());
}
#endregion
private void GetShowData()
{
int StartIndex = CurrentPage * PageSize;//设定导入的起终地址
this.PreviousLB.Enabled = true;
this.NextLB.Enabled = true;
if (CurrentPage == (PageCount - 1)) this.NextLB.Enabled = false;//当为最后一页时,下一页链接按钮不可用
if (CurrentPage == 0) this.PreviousLB.Enabled = false;//当为第一页时,上一页按钮不可用
this.CurrentLbl.Text = (CurrentPage + 1).ToString();//当前页数 StringBuilder sb = new StringBuilder();
if (CurrentPage == 0 || ViewState["PageIndex"] == null)
{
sb.Append("SELECT TOP " + PageSize + " *");
sb.Append(" FROM message ");
sb.Append(" where (DBFLAG = 1) ");
}
else
{
sb.Append("SELECT TOP " + PageSize + " *");
sb.Append(" FROM message ");
sb.Append(" WHERE (messageid NOT IN ");
sb.Append(" (SELECT TOP " + StartIndex + " messageid ");
sb.Append(" FROM message where (DBFLAG = 1) )) and ( DBFLAG = 1) "); }
Session["CurrentPage"] = true;
this.MessageShow1.GetSelectData(sb.ToString (), " order by sjwcsJ DESC ", true);
Session["CurrentPage"] = false;
} public void LinkButton_Click(Object sender, CommandEventArgs e)//自己编写的按钮点击事件
{
CurrentPage = (int)ViewState["PageIndex"];//获得当前页索引
PageCount = (int)ViewState["PageCount"];//获得总页数
string cmd = e.CommandName; //判断cmd,以判定翻页方向
switch (cmd)
{
case "prev"://上一页
if (CurrentPage > 0) CurrentPage--;
break; case "next":
if (CurrentPage < (PageCount - 1)) CurrentPage++;//下一页
break; case "first"://第一页
CurrentPage = 0;
break; case "end"://最后一页
CurrentPage = PageCount - 1;
break; case "jump"://跳转到第几页
if (this.TextBox1.Text.Trim() == "" || Int32.Parse(this.TextBox1.Text.Trim()) > PageCount)//如果输入数字为空或超出范围则返回
{
return;
}
else
{
CurrentPage = Int32.Parse(this.TextBox1.Text.ToString()) - 1;
break;
}
}
ViewState["PageIndex"] = CurrentPage;//获得当前页 this.GetShowData();//重新将DataList绑定到数据库
} }
}
<asp:LinkButton ID="FirstLB" runat="server" CommandName="first" OnCommand="LinkButton_Click">第一页</asp:LinkButton>
<asp:LinkButton ID="PreviousLB" runat="server" CommandName="prev" OnCommand="LinkButton_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="NextLB" runat="server" CommandName="next" OnCommand="LinkButton_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="EndLB" runat="server" CommandName="end" OnCommand="LinkButton_Click">最后一页</asp:LinkButton>
总<asp:Label ID="TotalLbl" runat="server"></asp:Label>页 当前第<asp:Label ID="CurrentLbl"
runat="server"></asp:Label>页
<asp:LinkButton ID="JumpLB" runat="server" CommandName="jump" OnCommand="LinkButton_Click">跳到</asp:LinkButton>第
<asp:TextBox ID="TextBox1" runat="server" Width="90px"></asp:TextBox>
页