• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • ASP.NET 翻頁后繼續維持排序

    發表于:2007-06-30來源:作者:點擊數: 標簽:
    要想實現翻頁后繼續排序,實現這樣的效果: 比如共 15筆記錄,每頁顯示10條 則排序時:第一頁將前10條記錄排序,翻第二頁時后五條再單獨排序. 要注意以下幾點: 1.如果數據很多,最好不要把數據集放到緩存中(viewstate),影響 性能 2. ViewState中存放上次是哪個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)
       {
        //異常
       }
      }
      
      

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>