在WEB上做什么?
/// 在 GridView 控件中的某个行被绑定到一个数据记录时发生。此事件通常用于在某个行被绑定到数据时修改该行的内容。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
this.lblCurrentPage.Text = string.Format("当前第{0}页/总共{1}页", this.GridView1.PageIndex + 1, this.GridView1.PageCount);
//遍历所有行设置边框样式
foreach (TableCell tc in e.Row.Cells)
{
tc.Attributes["style"] = "border-color:Black";
}
//用索引来取得编号
if (e.Row.RowIndex != -1)
{
int id = GridView1.PageIndex * GridView1.PageSize + e.Row.RowIndex + 1;
e.Row.Cells[0].Text = id.ToString();
}
}
/// <summary>
/// 重新绑定
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
this.GridView1.PageIndex = this.ddlCurrentPage.SelectedIndex;
bind();
}
protected void lnkbtnFrist_Click(object sender, EventArgs e)
{
this.GridView1.PageIndex = 0;
bind();
}
protected void lnkbtnPre_Click(object sender, EventArgs e)
{
if (this.GridView1.PageIndex > 0)
{
this.GridView1.PageIndex = this.GridView1.PageIndex - 1;
bind();
}
}
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
if (this.GridView1.PageIndex < this.GridView1.PageCount)
{
this.GridView1.PageIndex = this.GridView1.PageIndex + 1;
bind();
}
}
protected void lnkbtnLast_Click(object sender, EventArgs e)
{
this.GridView1.PageIndex = this.GridView1.PageCount;
bind();
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
namespace Component
{
/// <summary>
/// 分页控件
/// </summary>
public class CustomList : DataList
{
private int pageSize = 10;
private int total;
private IList dataSource;
private string _PageCss = string.Empty;
private int currPage;
private string empty;
private bool __IsShowHeader = true;
private bool __IsShowFooder = true;
public bool IsShowHeader
{
set { this.__IsShowHeader = value; }
}
public bool IsShowFooder
{
set { this.__IsShowFooder = value; }
}
public int PageSize
{
get { return this.pageSize; }
set { this.pageSize = value; }
}
public string EmptyText
{
set { this.empty = value; }
}
public string PageCss
{
set { this._PageCss = value; }
}
protected override void OnLoad(EventArgs e)
{
if(this.Visible)
{
string page = Context.Request["page"];
int index = (page != null) ? int.Parse(page) : 1;
OnPageIndexChanged(new DataGridPageChangedEventArgs(null, index));
}
}
public event DataGridPageChangedEventHandler PageIndexChanged;
protected virtual void OnPageIndexChanged(DataGridPageChangedEventArgs e)
{
if (PageIndexChanged != null)
PageIndexChanged(this, e);
}
protected override void Render(HtmlTextWriter writer)
{
if (this.total == 0)
{
//显示HeaderTemplate内容
for (int i = 0; i < Controls.Count; i++)
{
DataListItem dataitem = (DataListItem)this.Controls[i];
if ((dataitem.ItemType == ListItemType.Header && __IsShowHeader)
|| (dataitem.ItemType == ListItemType.Footer && __IsShowFooder))
{
dataitem.RenderControl(writer);
}
}
//
StringBuilder sb = new StringBuilder(500);
sb.Append("<table width=100% cellspacing=0 cellpadding=0 class=table-css>");
sb.Append("<tr><td class=\"td-nodata\">");
sb.AppendFormat("<span class=Notice-Msg> {0}</span>", empty);
sb.Append("</td></tr>");
sb.Append("</table>");
writer.Write(sb.ToString ());
return;
}
base.Render(writer);
//输出信息栏.
writer.Write("<br/><div>");
writer.Write(" 共有" + Convert.ToString(this.total) + "条信息, ");
writer.Write("每页" + Convert.ToString(this.pageSize) + "条, ");
writer.Write("页次:<font color=red><b>" + Convert.ToString(this.currPage) + "</b></font>");
writer.Write("/");
writer.Write(Convert.ToString(PageCount) + "页");
writer.Write(" ");
//准备输出页码组
int firstnum, lastnum;
if (currPage < 6)
{
firstnum = 1;
lastnum = 6;
if (lastnum > PageCount) lastnum = PageCount;
}
else
{
firstnum = currPage - 3;
lastnum = currPage + 3;
if (lastnum > PageCount) lastnum = currPage;
}
string pageName = Context.Request.Path;
string query = Context.Request.Url.Query.Replace("?", "&");
Regex reg = new Regex(@"^&page=\d+",RegexOptions.Compiled);
query = reg.Replace(query, string.Empty);
//到首页
writer.Write(string.Format("<a href={0}?page=1{1}><<</a> ", pageName, query));
//输出页码组
for (int i = firstnum; i <= lastnum; i++)
writer.Write(string.Format("<a href={0}?page=" + i.ToString() + "{1}>" + i.ToString() + "</a> ", pageName, query));
//到最终页
writer.Write(string.Format("<a href={0}?page=" + PageCount + "{1}>>></a> ", pageName, query));
writer.Write(" ");
//输入上一页
if (currPage == 1)
writer.Write("已是第一页");
if (currPage > 1)
writer.Write(string.Format("<a href={0}?page={1}{2}>上页</a>", pageName, (currPage - 1), query));
writer.Write(" ");
//输出下一页
if (currPage + 1 > PageCount)
writer.Write("已是最后页");
if (currPage < PageCount)
writer.Write(string.Format("<a href={0}?page={1}{2}>下页</a>", pageName, (currPage + 1), query));
writer.Write("</div>");
}
public override object DataSource
{
set
{
dataSource = (IList) value;
//判断是否有记录
if (dataSource != null)
this.total = dataSource.Count;
else
this.total = 0;
try
{
string page = Context.Request["page"];
int index = (page != null) ? int.Parse(page) : 1;
currPage = index;
}
catch
{
}
}
}
protected override void OnDataBinding(EventArgs e)
{
if (CurrentPageIndex == 0) CurrentPageIndex = 1;
int start = (CurrentPageIndex - 1) * pageSize;
int size = Math.Min(pageSize, total - start);
IList page = new ArrayList();
for (int i = 0; i < size; i++)
page.Add(dataSource[start + i]);
base.DataSource = page;
base.OnDataBinding(e);
}
/// <summary>
/// 当前页
/// </summary>
public int CurrentPageIndex
{
get { return currPage; }
set { currPage = value; }
}
/// <summary>
/// 总页数
/// </summary>
protected int PageCount
{
get
{
if (total % pageSize == 0)
return total / pageSize;
else
return (total / pageSize) + 1;
}
}
}
}
CREATE PROCEDURE GetRecordFromPage
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(2000) = '' -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL varchar(6000) -- 主语句
declare @strTmp varchar(1000) -- 临时变量
declare @strOrder varchar(500) -- 排序类型
if @OrderType != 0
begin
set @strTmp = ' <(select min'
set @strOrder = ' order by [' + @fldName + '] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp = ''
if @strWhere != ''
set @strTmp = ' where (' + @strWhere + ')'
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
exec (@strSQL)
GO
不能有传值!
看不懂
不用session或cookie
不用传值的形式来确定当前页面
不用分页控件
有效率的话更好啦(记录有100万)
你有理想吗?你理想是否在日渐退色与萎缩?不要在红尘中迷失自我 怎么样取出mysql中某月份的记录? 急,一个钟后结贴 统计柱状表 小弟初学C#,请教高手~ 三年.net 工程师 工作问题咨询 82岁怎么了,我也非主流 SQL 用[]和不用的区别 c#如何打开一个被其他进程正在使用的文件并改写之 chmod 4755的问题 cc攻击,他在忽悠我吗 cc攻击,他在忽悠我吗 绝对原创,关于手机辐射的详解,上过高中的都来看看吧! Struts中Text标签中赋值问题 c#问题 Hibernate执行SQL发生的情况! 泛型数据输入到Excel Hibernate执行SQL发生的情况! 获取鼠标坐标时被控件阻挡 socket编程 对消息进行校验 初学Struts1.2 validator验证框架无效 arm S3c2410 上面的 linux 在哪里下载啊 ??? 关于数据的对比 关于Word书签的一句代码,求助. 哪里有用C++写的用于教学的简单操作系统示例? cxgrid 某一列等于另外两列相除 软件二次开发 软件二次开发 TpagecontrolEx 一个你调试不到的错误; 关于MFC动态控件ID的问题