好象直接选要到第几页的功能没有啊,不算太完善吧
我是新手,也不知道是不是没看懂
我是新手,也不知道是不是没看懂
解决方案 »
- Cookies设置时间
- 分割数据
- 为什么我VS2005用不了frame呢
- 怎么下载一个目录下的文件?
- 请各位高手帮帮我啊..关于treeview的问题
- 如果显示一个DataTable中的所有记录?
- 大家来说说,你对ASP.NET的感觉!!
- 哪位客人可以帮帮我????????我刚入行............先谢了
- 搞不懂为啥,写不进数据库库里?求助
- 异常信息:System.NullReferenceException: 未将对象引用设置到对象的实例。行42:jishu=(uint)Application["counter"];
- 有没有人愿意回答这个简单的问题?
- 请教高手!绝对给分!在线等代。。。
在页面头部加上
<%@ Register TagPrefix="expo" Namespace="HEOA" Assembly="HEOA" %>只需要将页面上的 asp:datagrid 改为 expo:custdatagrid , 并加上 UseCustomPager="True" 属性,如果没有 UserCustomPager 或为False即与DataGrid一样 ):
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace HEOA
{
/// <summary>
/// Summary description for CustDataGrid.
/// </summary>
public class CustDataGrid : DataGrid
{
public CustDataGrid()
{
//
// TODO: Add constructor logic here
//
this.UseCustomPager = false; Init += new EventHandler( this.OnInit );
ItemCreated += new DataGridItemEventHandler(OnItemCreated);
this.ItemCommand += new DataGridCommandEventHandler( this.DataGridItemCommand );
}// private bool CancelBubbledEvent = false; // PROPERTY: AllowMultiSelect
public bool UseCustomPager = false; // EVENT HANDLER: Init
private void OnInit(Object sender, EventArgs e)
{
// Add a templated column that would allow for selection.
// The item template contains a checkbox. It also features a templated
// footer containing links for Unselect/Select all
} // EVENT HANDLER: ItemCreated
private void OnItemCreated(Object sender, DataGridItemEventArgs e)
{
// System.Diagnostics.Trace.WriteLine( string.Format("\n CustDataGrid! e.CommandName = {0}\n" , e.Item.ItemType ));
// Get the newly created item
ListItemType itemType = e.Item.ItemType; ///////////////////////////////////////////////////////////////////
// FOOTER
if (itemType == ListItemType.Pager )
{
if ( this.UseCustomPager )
{
e.Item.Cells[0].Controls.Clear(); Table table = new Table();
table.Width = Unit.Percentage(100);
TableRow row = new TableRow();
table.Rows.Add(row); TableCell cell; cell = new TableCell();
cell.Wrap = false;
cell.Width = Unit.Percentage(50);
cell.HorizontalAlign = HorizontalAlign.Left;
string str;
str = string.Format("第{0}页/总{1}页" , this.CurrentPageIndex + 1 , this.PageCount);
// System.Diagnostics.Trace.WriteLine( string.Format("\n str = {0}\n" , str )); cell.Text = str;
row.Cells.Add( cell ); cell = new TableCell();
cell.Wrap = false;
cell.Width = Unit.Percentage(50);
cell.HorizontalAlign = HorizontalAlign.Right; LinkButton linkButton; linkButton = new LinkButton();
linkButton.CommandName = "第一页";
linkButton.Text = "第一页";
linkButton.Enabled = this.CurrentPageIndex > 0;
cell.Controls.Add( linkButton );
cell.Controls.Add( new LiteralControl("|") ); linkButton = new LinkButton();
linkButton.CommandName = "前一页";
linkButton.Text = "前一页";
linkButton.Enabled = this.CurrentPageIndex > 0;
cell.Controls.Add( linkButton );
cell.Controls.Add( new LiteralControl("|") ); linkButton = new LinkButton();
linkButton.CommandName = "后一页";
linkButton.Text = "后一页";
linkButton.Enabled = this.CurrentPageIndex < ( this.PageCount - 1 ) ;
cell.Controls.Add( linkButton );
cell.Controls.Add( new LiteralControl("|") ); linkButton = new LinkButton();
linkButton.CommandName = "最后页";
linkButton.Text = "最后页";
linkButton.Enabled = this.CurrentPageIndex < ( this.PageCount - 1 ) ;
cell.Controls.Add( linkButton ); row.Cells.Add(cell); e.Item.Cells[0].Controls.Clear();
e.Item.Cells[0].Controls.Add( table );
}
}
} private void DataGridItemCommand (object sender , DataGridCommandEventArgs e)
{
// System.Diagnostics.Trace.WriteLine( string.Format("\n CustDataGrid! e.CommandName = {0}\n" , e.CommandName ));
switch( e.CommandName )
{
case "第一页":
{
DataGridPageChangedEventArgs arg = new DataGridPageChangedEventArgs( sender , 0 );
OnPageIndexChanged( arg );
}
break; case "前一页":
{
DataGridPageChangedEventArgs arg = new DataGridPageChangedEventArgs( sender , 0 );
if ( this.CurrentPageIndex > 0 )
arg = new DataGridPageChangedEventArgs( sender , this.CurrentPageIndex - 1 ) ;
OnPageIndexChanged( arg );
}
break;
case "后一页":
{
DataGridPageChangedEventArgs arg = new DataGridPageChangedEventArgs( sender , this.PageCount - 1 );
if ( this.CurrentPageIndex < (this.PageCount - 1) )
arg = new DataGridPageChangedEventArgs( sender , this.CurrentPageIndex + 1 ) ;
OnPageIndexChanged( arg );
}
break; case "最后页":
{
DataGridPageChangedEventArgs arg = new DataGridPageChangedEventArgs( sender , this.PageCount - 1 );
OnPageIndexChanged( arg );
}
break; default:
// if ( ! this.CancelBubbledEvent )
// {
// this.CancelBubbledEvent = true;
// OnItemCommand( e );
// }
break;
}
}
}
}