<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Try1.WebForm1" %>
WebForm1
http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
//-------后台代码---------------------------------
//-------使用的数据库是sqlserver2000示例数据库------
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration;
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;
using System.Data.SqlClient;
namespace Try1
{
///
/// WebForm1 的摘要说明。
///
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private DataSet dsNorth;
protected System.Web.UI.WebControls.Panel Panel1;
protected System.Web.UI.WebControls.LinkButton btnPrevious;
protected System.Web.UI.WebControls.LinkButton btnNext;
//使用dataview,以实现排序效果
private DataView dvNorth;
protected System.Web.UI.WebControls.TextBox txtIndex;
protected System.Web.UI.WebControls.Button btnGo;
protected System.Web.UI.WebControls.Label lblError;
protected System.Web.UI.WebControls.Panel pnlIndex;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
LoadDataSet();
InitpnlIndex();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///
private void InitializeComponent()
{
this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
this.DataGrid1.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGrid1_SortCommand);
this.btnPrevious.Click += new System.EventHandler(this.NavigationButtonClick);
this.btnNext.Click += new System.EventHandler(this.NavigationButtonClick);
this.btnGo.Click += new System.EventHandler(this.btnGo_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
//加载数据集
private void LoadDataSet()
{
SqlConnection cnNorth=new SqlConnection(ConfigurationSettings.AppSettings["cnNorth.ConnectionString"]);
string cmdString="SELECT * FROM Customers";
SqlDataAdapter adNorth=new SqlDataAdapter(cmdString,cnNorth);
cnNorth.Open();
dsNorth=new DataSet();
try
{
adNorth.Fill(dsNorth,"North");
}
catch
{
throw;
}
finally
{
cnNorth.Close();
}
dvNorth=new DataView();
dvNorth.Table=dsNorth.Tables["North"];
DataGrid1.DataSource=dvNorth;
DataGrid1.DataBind();
}
//初始化索引
private void InitpnlIndex()
{
pnlIndex.Controls.Clear();
int pageCount;
LinkButton btnIndex;
for (pageCount=0;pageCount {
int btnText=pageCount+1;
btnIndex=new LinkButton();
btnIndex.Text=btnText.ToString();
btnIndex.CommandName=pageCount.ToString();
btnIndex.Click+=new EventHandler(this.IndexButtonClick);
pnlIndex.Controls.Add(btnIndex);
pnlIndex.Controls.Add(new LiteralControl(" "));
}
}
//索引单击效果
private void IndexButtonClick(object sender,System.EventArgs e)
{
string direction=((LinkButton)sender).CommandName;
int pageIndex=Convert.ToInt32(direction);
DataGrid1.CurrentPageIndex=pageIndex;
DataGrid1.DataBind();
}
//排序效果实现
private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
this.dvNorth.Sort=e.SortExpression;
DataGrid1.DataBind();
}
//索引单击效果
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
DataGrid1.DataBind();
}
//翻页效果
private void NavigationButtonClick(object sender, System.EventArgs e)
{
string direction=((LinkButton)sender).CommandName;
switch(direction.ToUpper())
{
case "PREVIOUS":
DataGrid1.CurrentPageIndex=Math.Max(DataGrid1.CurrentPageIndex-1,0);
break;
case "NEXT":
DataGrid1.CurrentPageIndex=Math.Min(DataGrid1.CurrentPageIndex+1,DataGrid1.PageCount-1);
break;
default:
break;
}
DataGrid1.DataBind();
}
//去第几页效果
private void btnGo_Click(object sender, System.EventArgs e)
{
int pageIndex=0;
try
{
pageIndex=Convert.ToInt32(txtIndex.Text);
}
catch(Exception ex)
{
lblError.Visible=true;
lblError.Text=ex.Message;
}
finally
{
lblError.Visible=false;
lblError.Text="No that page!";
}
if(pageIndex>0&&pageIndex<=DataGrid1.PageCount)
{
try
{
DataGrid1.CurrentPageIndex=Math.Min(DataGrid1.PageCount,pageIndex-1);
DataGrid1.DataBind();
}
catch
{
lblError.Visible=true;
}
finally
{
lblError.Visible=false;
}
}
else
{
lblError.Visible=true;
}
}
}
}