<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      手把手教你如何擴展GridView之自動排序篇

      最新重構源碼下載:打造0代碼全自動GridView-天具神力     
            
      看到這兩天園子里面“強奸”GridView的兄弟們可真不少,自己也手癢,也湊湊熱鬧,寫得好,大家鼓勵鼓勵,寫的不好,大家多多指教。
         首先說說本文要實現的目的,大家都知道GridView支持排序,但是每次排序的時候,都需要給GridView添加OnSorting事件,這么繁瑣而費力,作為世界上最最聰明的程序員的我們難道沒有抱怨么?廢話少說,不才想到了一種解決這個問題的方法,可以讓大家一勞永逸。下面就讓兄弟我臭擺一下,希望園子里面的高高手,大大牛們給給面子,捧捧場,別取消兄弟。
         首先創建一個GridViewEx的類,并繼承GridView,然后添加如下委托

      public delegate void BindEventHandler();

       在GridViewEx中添加如下代碼: 

      DataSet _ds;
              [Description(
      "自定義的DataSet類型數據源"),Category("擴展")]
              
      public virtual DataSet DataSetSource
              
      {
                  
      get
                  
      {
                      
      return _ds;
                  }

                  
      set
                  
      {
                      _ds 
      = value;
                  }

              }

      我們在使用GridViewEx的時候,就只需要設定DataSetSource屬性,這個將限定本擴展組件只支持DataSet類型的數據源,其他類型數據源有興趣的,大家可以進行擴展,象ArrayList,List<>這些都是可以的。
      接下來的工作是為GridViewEx添加OnBind事件,如下:

       public event BindEventHandler Bind;
              
      public virtual void OnBind()
              
      {
                  
      if (Bind != null)
                  
      {
                      Bind();
                      
      if (DataSetSource != null)
                      
      {
                          DataView dv 
      = DataSetSource.Tables[0].DefaultView;
                          dv.Sort 
      = SortExpressionStr;                  
                          
      this.DataSource = dv;

                          
      this.DataBind();                }

                  }

              }

      有了這個事件,我們就可以讓GridView去類外部獲取數據源,然后回到類本身來組織數據和進行綁定了。
      接下來,需要聲明兩個方法

        [Description("排序表達式"),Category("擴展")]
              
      protected virtual string SortExpressionStr
              
      {
                  
      get
                  
      {
                      
      if (ViewState["SortExpression"== null)
                      
      {
                          
      return null;
                      }

                      
      return ViewState["SortExpression"].ToString();
                  }

                  
      set
                  
      {
                      ViewState[
      "SortExpression"= value;
                  }

              }

              [Description(
      "排序方向"),Category("擴展")]
              
      protected virtual string SortDirectionStr
              
      {
                  
      get
                  
      {
                      
      if (ViewState["SortDirection"== null)
                      
      {
                          
      return "DESC";
                      }

                      
      if (ViewState["SortDirection"].ToString().ToLower() != "asc" && ViewState["SortDirection"].ToString().ToLower() != "desc")
                      
      {
                          
      return "DESC";
                      }

                      
      return ViewState["SortDirection"].ToString();
                  }

                  
      set
                  
      {
                      ViewState[
      "SortDirection"= value;
                  }

              }

      和下面的屬性

       public string SortExpressionEx
              
      {
                  
      get
                  
      {
                      
      if (ViewState["SortExpressionEx"== null)
                      
      {
                          
      return null;
                      }

                      
      return ViewState["SortExpressionEx"].ToString();
                  }

                  
      set
                  
      {
                      ViewState[
      "SortExpressionEx"= value;
                  }

              }

      然后重寫OnSorting事件如下:

        protected override void OnSorting(GridViewSortEventArgs e)
              
      {
                  SortExpressionEx 
      = e.SortExpression;
                  SortExpressionStr 
      = e.SortExpression + " " + SortDirectionStr;
                  OnBind();
                  
      if (SortDirectionStr.ToLower() == "asc")
                  
      {
                      SortDirectionStr 
      = "DESC";
                  }

                  
      else
                  
      {
                      SortDirectionStr 
      = "ASC";
                  }

              }

      并且增加如下的OnLoad事件

       protected override void OnLoad(EventArgs e)
              
      {
                  
      if (!Page.IsPostBack)
                  
      {
                      
      try
                      
      {
                          OnBind();
                      }

                      
      catch
                      
      {

                      }

                  }

                  
      base.OnLoad(e);
              }


      經過上面這樣簡單的改造,您再次使用GridViewEx的時候,在前臺頁面使用的時候,您只要按照這樣的格式就可以了:
      <cc1:GridViewEx id="gridViewEx1" OnBind="BindData" runat="server" AllowSorting="True">
        <Columns>
          <asp:TemplateField HeaderText="序號" SortExpression="ID"><%#Eval(''ID")%></asp:TemplateField> 
       </Columns>
      </cc1:GridViewEx>
       后臺只需要添加這樣的方法

      public void BindData()
      {
         DataSet ds 
      = new DataSet();
         ds 
      = //獲得DataSet;
         gridView1.DataSetSource = ds;
      }

       在頁面中的Page_Load方法中,也不用再寫
      if(!Page.IsPostBack)
      {
              BindData();//綁定GridView的方法
      }
      注意,如果需要重新綁定GridView,只需要這樣GridViewEx1.OnBind();即可。


       

      posted @ 2007-06-04 23:03  Robin Zhang  閱讀(9760)  評論(6)    收藏  舉報
      主站蜘蛛池模板: 国产欧美日韩亚洲一区二区三区 | 午夜A理论片在线播放| 一本无码av中文出轨人妻| 国产尤物精品自在拍视频首页| 成人亚洲一区二区三区在线| japanese人妻中文字幕| 国产精品福利自产拍久久| 1区2区3区4区产品不卡码网站| 国产精品人人爽人人做我的可爱| 井冈山市| 一区二区三区无码免费看| 成人亚欧欧美激情在线观看| 大又大又粗又硬又爽少妇毛片| 人妻少妇88久久中文字幕| 中文字幕亚洲综合小综合| 久久久久久久久久久久中文字幕 | 一二三三免费观看视频| 国产精品午夜福利在线观看| 黑人巨大精品oideo| 亚洲日韩性欧美中文字幕| 激情综合网激情国产av| 91青青草视频在线观看的| 日本久久99成人网站| 国产美女免费永久无遮挡| 欧美奶涨边摸边做爰视频| 亚洲国产精品日韩在线| 国产边打电话边被躁视频| 精品久久人人做爽综合| xxxx丰满少妇高潮| 蜜芽久久人人超碰爱香蕉| 国内精品伊人久久久久AV一坑| 麻豆一区二区中文字幕| 欧美丰满熟妇乱XXXXX网站| 久久综合亚洲鲁鲁九月天| 国产成人av电影在线观看第一页| 亚洲伊人久久综合成人| 日韩最新中文字幕| 麻豆一区二区中文字幕| 成人亚洲一级午夜激情网| 日韩乱码人妻无码中文字幕| 亚洲人成小说网站色在线 |