成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

ASP.NET翻頁后繼續維持排序

2010-08-28 10:48:01來源:西部e網作者:

  要想實現翻頁后繼續排序,實現這樣的效果:

  比如共 15筆記錄,每頁顯示10條

  則排序時:第一頁將前10條記錄排序,翻第二頁時后五條再單獨排序.

  要注意以下幾點:

  1.如果數據很多,最好不要把數據集放到緩存中(viewstate),影響性能

  2. ViewState中存放上次是哪個e.expression并且存放此e.expression是升序還是降序

  示例如下:

  1.現有的排序事件是這樣寫的,這個是點擊上面排序標題時用:


private void grdProjTrace_SortCommand(object source, DataGridSortCommandEventArgs e)
{
 this.grdProjTrace.CurrentPageIndex = 0;
 DataView dv = 得到數據代碼;
 string strSort = "";
 string strOrder ="";//排序方式。0,降序,1升序
 if(ViewState["SortExpresstion"] != null)
 {
  strSort = ViewState["SortExpresstion"].ToString();
  strSort = strSort.Substring(0,strSort.Length -1);
  strOrder = ViewState["SortExpresstion"].ToString();
  strOrder = strOrder.Substring(strOrder.Length -1);
 }
 if(e.SortExpression == "CustomerName")
 {
  if(strSort != "CustomerName")
  {
   this.ViewState["SortExpresstion"] = ustomerName0";
   dv.Sort = "CustomerName DESC";
  }
  else
  {
   if(strOrder == "0")
   {
    this.ViewState["SortExpresstion"] = "CustomerName1";
    dv.Sort = "CustomerName ASC";
   }
   else
   {
    this.ViewState["SortExpresstion"] = "CustomerName0";
    dv.Sort = "CustomerName DESC";
   }
  }
 }
 if(e.SortExpression == "fullName")
 {
  if(strSort != "fullName")
  {
   this.ViewState["SortExpresstion"] = "fullName0";
   dv.Sort = "fullName DESC";
  }
  else
  {
   if(strOrder == "0")
   {
    this.ViewState["SortExpresstion"] = "fullName1";
    dv.Sort = "fullName ASC";
   }
   else
   {
    this.ViewState["SortExpresstion"] = "fullName0";
    dv.Sort = "fullName DESC";
   }
  }
 }
 this.grdProjTrace.DataSource = dv;
 this.grdProjTrace.DataBind();
}
>
  2.下面這個方法是自己寫的,翻頁事件中調用。


private void ChangePageDataBind()
{
 DataView dv = 得到數據代碼;
 string strSort = "";
 string strOrder ="";//排序方式。0,降序,1升序
 if(ViewState["SortExpresstion"] != null)
 {
  strSort = ViewState["SortExpresstion"].ToString();
  strSort = strSort.Substring(0,strSort.Length -1);
  strOrder = ViewState["SortExpresstion"].ToString();
  strOrder = strOrder.Substring(strOrder.Length -1);
 }
 if(this.ViewState["SortExpresstion"] != null)
 {
  if(strSort == "CustomerName")
  {
   if(strOrder == "1")
   {
    this.ViewState["SortExpresstion"] = "CustomerName1";
    dv.Sort = "CustomerName ASC";
   }
   else
   {
    this.ViewState["SortExpresstion"] = "CustomerName0";
    dv.Sort = "CustomerName DESC";
   }
  }
 }
 if(this.ViewState["SortExpresstion"] != null)
 {
  if(strSort == "fullName")
  {
   if(strOrder == "1")
   {
    this.ViewState["SortExpresstion"] = "fullName1";
    dv.Sort = "fullName ASC";
   }
   else
   {
    this.ViewState["SortExpresstion"] = "fullName0";
    dv.Sort = "fullName DESC";
   }
  }
 }
 this.grdProjTrace.DataSource = dv;
 this.grdProjTrace.DataBind();
}

  上面兩方法只要修改要排序的字段名,就可以直接調用了.

  1、方法很簡單實用,這里就不說了。

  2、方法是這樣用的:


private void grdProjTrace_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
 try
 {
  try
  {
   this.grdProjTrace.CurrentPageIndex = e.NewPageIndex;
  }
  catch
  {
   this.grdProjTrace.CurrentPageIndex = 0;
  }

  this.ChangePageDataBind();
 }
 catch(System.Exception errWS)
 {
  //異常
 }
}

關鍵詞:ASP.NET

贊助商鏈接:

主站蜘蛛池模板: 通州区| 新余市| 资阳市| 新兴县| 三台县| 西乡县| 唐海县| 柞水县| 永登县| 乾安县| 莱阳市| 松江区| 曲麻莱县| 叙永县| 康乐县| 兴和县| 望都县| 宝兴县| 安泽县| 始兴县| 佛学| 锦州市| 大理市| 那曲县| 德令哈市| 和田县| 绥棱县| 清苑县| 辽中县| 盘山县| 论坛| 钦州市| 旺苍县| 霍山县| 永吉县| 大渡口区| 当涂县| 大荔县| 富阳市| 西畴县| 吴忠市|