1、我们建立一个webform.aspx文件。
2、在webform中添加Datagrid控件,DropDownList控件,Button控件。
3、建立一个Access数据库的.mdb文件,适当地填写数据。
4、在对应.cs文件中填写这段代码,如下:
private OleDbConnection conn;
private OleDbDataAdapter da;
private DataSet ds = new DataSet() ;
private DataView dv;
protected void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
{
//使用ViewState保存页面中的排序字段名
if (ViewState["SortField"]==null)
{
ViewState["SortField"] = "index";
}
//调用BindGrid函数完成绑定数据
BindGrid(ViewState["SortField"].ToString ());
}
}
private void BindGrid(string SortField)
{
//new a dbconnection,数据库为db目录下的mydb.mdb
//string connstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
// + Server.MapPath(@"./db/mydb.mdb")
// + ";Mode=Share Deny None;Persist Security Info=False";
string connstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ Server.MapPath(@"./db/mydb.mdb");
conn = new OleDbConnection(connstr);
//创建sql语句
string sql = "SELECT * FROM mytable";
//创建dataadapter
da = new OleDbDataAdapter(sql,conn);
//填充dataset
da.Fill(ds, "my");
dv = ds.Tables["my"].DefaultView;
//dataview的排序字段
dv.Sort = SortField;
//绑定DataGrid1
DataGrid1.DataSource = dv;
DataGrid1.DataBind ();
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
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);
}
#endregion
private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
//如果已经按照当前字段排序,就反序排列,否则进行排序
//当前排序字段记录在ViewState["SortField"]中
if (ViewState["SortField"].ToString () == e.SortExpression )
{
BindGrid(e.SortExpression + " DESC");
ViewState["SortField"] = "";
}
else
{
BindGrid(e.SortExpression );
ViewState["SortField"] = e.SortExpression ;
}
}
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
//设置新的当前页号,重新绑定数据
DataGrid1.CurrentPageIndex = e.NewPageIndex ;
BindGrid(ViewState["SortField"].ToString ());
}
protected void Button1_Click(object sender, System.EventArgs e)
{
if (int.Parse (ddPageSize.SelectedItem.Value) == 0)
{
DataGrid1.AllowPaging = false;
}
else
{
DataGrid1.AllowPaging = true;
DataGrid1.PageSize = int.Parse (ddPageSize.SelectedItem.Value) ;
DataGrid1.CurrentPageIndex = 0;
}
BindGrid(ViewState["SortField"].ToString ());
}
5、然后你用ie浏览.aspx文件,在下拉菜单中选择页size大小,点击button来设置。
6、点击标题,进行排序。
7、你也试试吧!