如何在DataGrid控件中实现自定义分页功能

效果

姓名 城市 出生年月
Davolio Nancy Seattle 1948年12月8日
Fuller Andrew Tacoma 1952年2月19日
Leverling Janet Kirkland 1963年8月30日
Peacock Margaret Redmond 1937年9月19日
Buchanan Steven London 1955年3月4日
1 2

代码:

     public   class  DataGridCustomPage : System.Web.UI.Page
    
{
        
protected System.Web.UI.WebControls.DataGrid dgCustomPage;
        
//定义全局变量用来保存每页的起始项索引
        int startIndex=0;
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
//页面初试化时进行数据绑定
            if(!IsPostBack)
                DataGridDataBind();
        }

        
private void DataGridDataBind()
        
{
            
//定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
            SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
            
//创建数据适配器对象
            SqlDataAdapter da = new SqlDataAdapter("select LastName,FirstName,BirthDate,City from Employees",conn);
            
//创建DataSet对象
            DataSet ds = new DataSet();
            
try
            
{
                
//从指定的索引开始取PageSize条记录
                da.Fill(ds,startIndex,dgCustomPage.PageSize,"CurDataTable");
                
//填充数据集
                da.Fill(ds,"AllDataTable");
                
//设置DataGrid控件实际要显示的项数
                dgCustomPage.VirtualItemCount = ds.Tables["AllDataTable"].Rows.Count;
                
//进行数据绑定
                dgCustomPage.DataSource = ds.Tables["CurDataTable"];
                dgCustomPage.DataBind();
            }

            
catch(Exception error)
            
{
                Response.Write(error.ToString());
            }
    
        }



        
Web 窗体设计器生成的代码

        
private void dgCustomPage_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
        
{
            
//设置DataGrid当前页的索引值为用户选择的页的索引
            dgCustomPage.CurrentPageIndex = e.NewPageIndex;
            
//取得当前页为止总共有多少条记录,以便在下一页就从该记录开始读取
            startIndex = dgCustomPage.PageSize * dgCustomPage.CurrentPageIndex;
            
//重新绑定数据
            DataGridDataBind();
        }

    }

你可能感兴趣的:(datagrid)