不知道大家都是怎么处理的:关于排序后再点页码后就失去排序记忆了。。。。20分
这是我的排序和分页代码:
int startindex;
public void Page_Load(Object sender, EventArgs e)
{
if(!IsPostBack)
{
tobind();
}
}
public void tochange(Object sender,DataGridPageChangedEventArgs e)
{
startindex=e.NewPageIndex*mygrid.PageSize;
mygrid.CurrentPageIndex=e.NewPageIndex;
tobind();
}
public void tobind()
{
OleDbConnection conn=new OleDbConnection(ConfigurationSettings.AppSettings[ "data "]+Server.MapPath(ConfigurationSettings.AppSettings[ "path "]));
conn.Open();
string sql= "select * FROM aa ";
OleDbDataAdapter da=new OleDbDataAdapter(sql,conn);
DataSet ds=new DataSet() ;
da.Fill (ds, "aa ");
mygrid.DataSource =ds;
mygrid.DataBind();
}
public void dgsort(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
if(ViewState[ "order "]==null) //这个是 隐藏控件
{
ViewState[ "order "]= "ASC ";
}
else
{
if(ViewState[ "order "].ToString()== "ASC ")
{
ViewState[ "order "]= "DESC ";
}
else
{
ViewState[ "order "]= "ASC " ;
}
}//第一次生续,第二次点击,显示的降续
//数据显示
OleDbConnection conn=new OleDbConnection(ConfigurationSettings.AppSettings[ "data "]+Server.MapPath(ConfigurationSettings.AppSettings[ "path "]));
conn.Open();
string sql= "select * FROM aa ";
OleDbDataAdapter da=new OleDbDataAdapter(sql,conn);
DataSet ds=new DataSet() ;
da.Fill (ds, "aa ");
ds.Tables[ "aa "].DefaultView.Sort=e.SortExpression+ " "+ViewState[ "order "].ToString();//这句是关键
this.mygrid.DataSource=ds.Tables[ "aa "].DefaultView;// BANGDING 视图
this.mygrid.DataBind();
}
可能我说的不是很清楚,我解释下:我打开页面后点排序一切正常,但是我点分页的时候排序就是按照默认的排序方式,请问有方法可以改吗?就叫它点了排序后能记忆下排序方式,无论怎么点页码都是按照你的那个排序方式来排的。再点下排序方式就换过来了,20分太少,无奈本人菜鸟一个,也是穷光蛋一个,哈哈,现实也是如此4无人员无车无房无老婆无存款。。。。希望能得到你们的帮助谢谢。
------解决方案--------------------呵呵,这个是分页控件的问题,你在