使用工具是VS2005 语言是:C#
怎么分页才能得到分页的效果的拉?
我要的效果如下:
效果一:
共1000条记录/100页,当前页:15 【首页】【上一页】【下一页】【尾页】 跳转到:"这里是个文本框,自己填数字" "加个按钮"
效果二:
【首页】【上一页】1 2 3 4 5 6 7 8 9 .....【下一页】【尾页】 跳转到:"这里是个文本框,自己填数字" "加个按钮"
希望好心的朋友们能给出源代码,谢谢!
在问一下,在ASP.NET中除了是用控件分页外,还可以用什么分页拉?
除了使用datalist\datagrid\datapa……
还可以使用什么分页拉?
希望各位朋友能给我一个datalist分页的详细列子和一个不用控件的详细列子,谢谢各位!
效果希望是上面所述的效果谢谢! 希望大家能给我那两中效果的详细源代码,谢谢!
谢谢各位,真的很感谢大家的帮助!
谢谢!
怎么分页才能得到分页的效果的拉?
我要的效果如下:
效果一:
共1000条记录/100页,当前页:15 【首页】【上一页】【下一页】【尾页】 跳转到:"这里是个文本框,自己填数字" "加个按钮"
效果二:
【首页】【上一页】1 2 3 4 5 6 7 8 9 .....【下一页】【尾页】 跳转到:"这里是个文本框,自己填数字" "加个按钮"
希望好心的朋友们能给出源代码,谢谢!
在问一下,在ASP.NET中除了是用控件分页外,还可以用什么分页拉?
除了使用datalist\datagrid\datapa……
还可以使用什么分页拉?
希望各位朋友能给我一个datalist分页的详细列子和一个不用控件的详细列子,谢谢各位!
效果希望是上面所述的效果谢谢! 希望大家能给我那两中效果的详细源代码,谢谢!
谢谢各位,真的很感谢大家的帮助!
谢谢!
解决方案 »
- 关于数据库同步的问题,急,急,急。
- 2个aspx页面,如何互相传递值?
- 可不可以编程的方法取得服务器IIS6上的MIME类型表?
- 百万海量数据下载,谁能提供思路啊
- 100分求一个网页访问记数的代码
- 突然出现了"发生类型为 System.StackOverflowException 的异常"?
- 图片上传
- 哪位有VB。NET写的。NET源码可以提供吗?谢谢
- 用VS写Asp.net程序,怎样换别的机器上继续写
- sln文件???
- asp.net2.0的treeview控件的OnSelectedNodeChanged事件,为什么只能获取根节点的值,代码如下?
- webconfig配置问题???????大家帮帮我吧!
ASP.NET Technical Articles
GridView Examples for ASP.NET 2.0: Paging and Sorting the GridView's Data
建议你买本《ASP.NET程序开发范例宝典》看看,很多实际问题都有的
/// 添加页码的函数
/// </summary>
protected void AddPageCode(Panel content) { int t = this.GridView1.PageIndex + 1; //获取当前GridView的页码 int b = 1, pend = 10; if (t > 10)
{
b = t - t % 10 + 1; //计算起始页号
pend = b + 10 - 1; //结束页号
}
pend = pend > this.GridView1.PageCount ? this.GridView1.PageCount : pend; //如果页总数大于结束页号,则规整结束页号为页总数。
if (b > 10)
{
//添加前翻按钮
LinkButton lb = new LinkButton();
lb.Text = "<<";
lb.CommandArgument = Convert.ToString(b - 1);
lb.Width = 15;
lb.Visible = true;
lb.Click += new EventHandler(PageBut_Click);
content.Controls.Add(lb); //将链接按钮加入控件。
}
for (int i = b; i <= pend; i++) //添加页码
{
LinkButton lb = new LinkButton();
lb.Text = i.ToString();
lb.CommandArgument = i.ToString();
lb.Width = 10;
lb.Visible = true;
lb.Click += new EventHandler(PageBut_Click);
if (i - 1 == this.GridView1.PageIndex)
{
lb.Enabled = false;
}
content.Controls.Add(lb);
} if (pend < this.GridView1.PageCount) //添加后翻按钮
{
LinkButton lb = new LinkButton();
lb.Text = ">>";
lb.CommandArgument = Convert.ToString(pend + 1);
lb.Width = 15;
lb.Visible = true;
lb.Click += new EventHandler(PageBut_Click);
content.Controls.Add(lb);
}
} /// <summary>
/// 响应翻页按钮被点击事件。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void PageBut_Click(object sender, EventArgs e)
{
LinkButton lb = (LinkButton)sender;
this.GridView1.PageIndex = int.Parse(lb.CommandArgument) - 1;
}
/// <summary>
/// 在GridView的RowCreated事件里创建翻页按钮
/// </summary>
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Pager)
{
Panel ppr = (Panel)e.Row.FindControl("PagePanelRight");
if (ppr != null) {
this.AddPageCode(ppr);
}
}
}
OK,你再在GridVeiw的PageTemplate里加个Panel(PagePanelRight)就行了。代码随便改,就是动态创建控件时务必在GridView的RowCreated事件里创建,否则一翻页就不见了,我就血的教训 -_-!
string ConStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
SqlConnection Con; protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//设置默认的排序顺序
ViewState["CompanyName"] = "SupplierID";
ViewState["Direction"] = "ASC";
ViewState["LineNo"] = 0;
//初始化的时候默认显示第一页
lblCount.Text = "1";
BindRepeter();
}
} //判断命令
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
String Index = ((Label)Repeater1.Items[e.Item.ItemIndex].FindControl("lblID")).Text;
Session["ID"] = Index;
//编辑模式
if (e.CommandName == "Edit")
{
string CompanyName = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblCompanyName"))).Text;
string Name = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblName"))).Text;
string Address = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblAddress"))).Text;
string City = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblCity"))).Text;
txtCompanyName.Text = CompanyName;
txtContactName.Text = Name;
txtAddress.Text = Address;
txtCity.Text = City;
if (Panel1.Visible == false)
{
ShowMessage("进入编辑模式"); }
SetDisplayTrue();
btnInsert.Visible = false;
btnUpdate.Visible = true;
Button1.Visible = true;
}
//删除
else if (e.CommandName == "Delete")
{
if (Panel1.Visible == true)
{
ShowMessage("编辑模式下禁止删除");
}
else
{
SetDisplayFalse();
string DeleteStr = "DELETE FROM Suppliers WHERE SupplierID='" + Index + "'";
Con = new SqlConnection(ConStr);
SqlCommand DeleteCmd = new SqlCommand(DeleteStr,Con);
try
{
Con.Open();
DeleteCmd.ExecuteNonQuery();
ShowMessage("删除成功");
BindRepeter();
}
catch (Exception ex)
{
ShowMessage("删除有错误,请检查");
}
finally
{
Con.Dispose();
}
}
}//新增
else if (e.CommandName == "New")
{
if (Panel1.Visible == true)
{
ShowMessage("编辑模式下禁止添加新行");
}
else
{
SetDisplayTrue();
ClearWord();
btnInsert.Visible = true;
btnUpdate.Visible = false;
Button1.Visible = true;
} }
} //绑定Repeter
private void BindRepeter()
{
string QueryCon = "SELECT SupplierID,CompanyName,ContactName,Address,City FROM Suppliers";
Con = new SqlConnection(ConStr);
SqlDataAdapter NorthWindDa = new SqlDataAdapter(QueryCon, ConStr);
DataSet Ds = new DataSet();
NorthWindDa.Fill(Ds, "Suppliers");
//Repeater1.DataKeyNames = new string[] { "SupplierID" };
DataView Dv = Ds.Tables["Suppliers"].DefaultView;
//排序表达式
string SortExpress = (string)ViewState["CompanyName"] + " " + (string)ViewState["Direction"];
Dv.Sort = SortExpress;
//绑定数据源
//Repeater1.DataSource = Ds.Tables["Suppliers"];
//利用PagedDataSource进行分页
PagedDataSource PageDs = new PagedDataSource();
PageDs.DataSource = Dv;
PageDs.AllowPaging = true;
PageDs.PageSize = 10;
int CurrentPage = Convert.ToInt32(lblCount.Text);
//当前页
PageDs.CurrentPageIndex = CurrentPage-1;
btnPage.Enabled = true;
Button2.Enabled = true;
if (CurrentPage == 1)
{
Button2.Enabled = false;
}
if (CurrentPage == PageDs.PageCount)
{
btnPage.Enabled = false;
}
//PageCount = PageDs.PageCount;
lblPage.Text = "共" + PageDs.PageCount + "页,当前在第";
//将PageDs作为数据源进行绑定
Repeater1.DataSource = PageDs;
Repeater1.DataBind();
} //显示编辑区域
private void SetDisplayTrue()
{
lblCompanyName.Visible = true;
lblName.Visible = true;
lblAddress.Visible = true;
lblCity.Visible = true;
txtCompanyName.Visible = true;
txtContactName.Visible = true;
txtAddress.Visible = true;
txtCity.Visible = true;
Panel1.Visible = true;
} //隐藏编辑区域
private void SetDisplayFalse()
{
lblCompanyName.Visible = false;
lblName.Visible = false;
lblAddress.Visible = false;
lblCity.Visible = false;
txtCompanyName.Visible = false;
txtContactName.Visible = false;
txtAddress.Visible = false;
txtCity.Visible = false;
Panel1.Visible = false;
} //封装javascript
private void ShowMessage(string Message)
{
Literal TxtMsg = new Literal();
TxtMsg.Text = "<script>alert('"+Message+"')</script>";
Page.Controls.Add(TxtMsg);
}
//更新数据
protected void btnUpdate_Click(object sender, EventArgs e)
{
string CompanyName = Server.HtmlEncode(txtCompanyName.Text.ToString());
string ContactName = Server.HtmlEncode(txtContactName.Text.ToString());
string Address = Server.HtmlEncode(txtAddress.Text.ToString());
string City = Server.HtmlEncode(txtCity.Text.ToString());
string UpdateStr = "UPDATE Suppliers SET CompanyName='" + CompanyName + "',ContactName='" + ContactName + "'," +
"Address='" + Address + "',City='" + City + "' WHERE SupplierID='" + Session["ID"] + "' ";
Con = new SqlConnection(ConStr);
SqlCommand UpdateCmd = new SqlCommand(UpdateStr,Con);
try
{
Con.Open();
UpdateCmd.ExecuteNonQuery();
ShowMessage("更新成功");
SetDisplayFalse();
BindRepeter();
}
catch (Exception ex)
{
ShowMessage("更新出错,请重新输入");
}
finally
{
Con.Dispose();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
SetDisplayFalse();
} //插入一行新数据
protected void btnInsert_Click(object sender, EventArgs e)
{
string CompanyName = Server.HtmlEncode(txtCompanyName.Text.ToString());
string ContactName = Server.HtmlEncode(txtContactName.Text.ToString());
string Address = Server.HtmlEncode(txtAddress.Text.ToString());
string City = Server.HtmlEncode(txtCity.Text.ToString());
string InsertStr = "INSERT INTO Suppliers (CompanyName,ContactName,Address,City) VALUES('" + CompanyName + "','" + ContactName + "','" + Address + "','" + City + "')";
Con = new SqlConnection(ConStr);
SqlCommand InsertCmd = new SqlCommand(InsertStr, Con);
try
{
Con.Open();
InsertCmd.ExecuteNonQuery();
ShowMessage("插入成功");
SetDisplayFalse();
BindRepeter();
}
catch (Exception ex)
{
ShowMessage("插入失败,请重新检查");
}
finally
{
Con.Dispose();
}
}}
{
if (Session["Dv"] != null)
{
PagedDataSource PageSource = new PagedDataSource();
PageSource.AllowPaging = true;
PageSource.PageSize = 10;
PageSource.DataSource = ((DataView)Session["Dv"]);
PageSource.CurrentPageIndex = Index;
//lblCount.Text = "共" + PageSource.PageCount + "页,当前第" + (PageSource.CurrentPageIndex + 1) + "页";
Repeater1.DataSource = PageSource;
Repeater1.DataBind();
}
}
*/ //下一页
protected void btnPage_Click(object sender, EventArgs e)
{
//更改pageds的当前页数
lblCount.Text = Convert.ToString(Convert.ToInt32(lblCount.Text) + 1);
BindRepeter();
} //上一页
protected void Button2_Click(object sender, EventArgs e)
{
//更改当前页
lblCount.Text = Convert.ToString(Convert.ToInt32(lblCount.Text)-1);
BindRepeter();
} //排序
protected void btnSort_Click(object sender, EventArgs e)
{
//判断排序表达式的顺序
if (ViewState["Direction"].ToString() == "DESC")
{
ViewState["Direction"] = "ASC";
}
else
{
ViewState["Direction"] = "DESC";
}
BindRepeter();
}
我这个是repeter的分页和增,删,改,查。楼主可以参考一下,基本上课datalist类似。