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

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

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

      手把手教你如何擴展GridView之自帶CheckBox

            我們在使用GridView的時候,很多時候需要使用CheckBox列,比如批量刪除,批量審批,但是每每都需要記住繁瑣的實現方法。多麻煩呀!再次給GridView做個手術,讓它自己就能產生CheckBox豈不爽死了。以后您就有權利忘記怎么實現CheckBox列了。哈哈,作咱們這行的,就要學的慢慢退化,什么事情都記著,累也累死了。
            下面談談我這實現的思路:
            因為GridView是基于模板的,Columns也不能在后臺添加,所以排除通過添加Column來實現,而采用在GridView創建行的時候動態創建表單元格,在表頭行上添加一個全選CheckBox,數據行上添加選擇框,點擊全選,通過向頁面注冊的腳本來實現全選。
         下面就看看關鍵的代碼:
          為了增加靈活性,添加了一個屬性,控制是否顯示CheckBox列  

         //是否顯示全選
              [
            Description(
      "顯示全選列"),
            Category(
      "擴展"),
              DefaultValue(
      false)
            ]
              
      public virtual bool ShowCheckAll
              
      {
                  
      get
                  
      {
                      
      object obj2 = this.ViewState["ShowCheckAll"];
                      
      if (obj2 != null)
                      
      {
                          
      return (bool)obj2;
                      }

                      
      return false;

                  }

                  
      set
                  
      {
                      
      bool aShowCheckAll = this.ShowCheckAll;
                      
      if (value != aShowCheckAll)
                      
      {
                          
      this.ViewState["ShowCheckAll"= value;
                          
      if (base.Initialized)
                          
      {
                              
      base.RequiresDataBinding = true;
                          }

                      }

                  }

              }

      用于控制選擇列是添加到表的左端還是右端的屬性

       public enum CheckColumnAlign
          
      {
              Left, Right
          }


         
      //是否顯示全選
              [
            Description(
      "全選列的位置"),
            Category(
      "擴展"),
            DefaultValue(CheckColumnAlign.Left)
            ]
              
      public virtual CheckColumnAlign CheckColumnAlign
              
      {
                  
      get
                  
      {
                      
      object obj2 = this.ViewState["CheckColumnAlign"];
                      
      if (obj2 != null)
                      
      {
                          
      return (CheckColumnAlign)obj2;
                      }

                      
      return CheckColumnAlign.Left;
                  }

                  
      set
                  
      {
                      CheckColumnAlign aCheckColumnAlign 
      = this.CheckColumnAlign;
                      
      if (value != aCheckColumnAlign)
                      
      {
                          
      this.ViewState["CheckColumnAlign"= value;
                          
      if (base.Initialized)
                          
      {
                              
      base.RequiresDataBinding = true;
                          }

                      }

                  }

              }

      在頁面加載的時候,注冊全選腳本

       StringBuilder sb = new StringBuilder();
                  sb.Append(
      " <script type=\"text/javascript\">");
                  sb.Append(
      "function CheckAll(oCheckbox)");
                  sb.Append(
      "{");
                  sb.Append(
      "var GridView2 = document.getElementById(\"" + this.ClientID + "\");");
                  sb.Append(
      " for(i = 1;i < GridView2.rows.length; i++)");
                  sb.Append(
      "{");
                  sb.Append(
      "var inputArray = GridView2.rows[i].getElementsByTagName(\"INPUT\");");
                  sb.Append(
      "for(var j=0;j<inputArray.length;j++)");
                  sb.Append(
      "{ if(inputArray[j].type=='checkbox')");
                  sb.Append(
      "{if(inputArray[j].id.indexOf('ItemCheckBox',0)>-1){inputArray[j].checked =oCheckbox.checked; }}  }");
                  sb.Append(
      "}");
                  sb.Append(
      " }");
                  sb.Append(
      "</script>");
                  ScriptManager.RegisterClientScriptBlock(
      thisthis.GetType(), "CheckFun", sb.ToString(), false);

      在GridView的RowCreate事件中,添加如下代碼,用于創建CheckBox列

         if (ShowCheckAll)
                      
      {
                          GridViewRow row 
      = e.Row;
                          
      if (row.RowType == DataControlRowType.Header)
                          
      {
                              TableCell cell 
      = new TableCell();
                              cell.Wrap 
      = Wrap;
                              cell.Width 
      = Unit.Pixel(50);
                              cell.Text 
      = " <input id='Checkbox2' type='checkbox' onclick='CheckAll(this)'/><label>全選</label>";
                              
      if (CheckColumnAlign == CheckColumnAlign.Left)
                              
      {
                                  row.Cells.AddAt(
      0, cell);
                              }

                              
      else
                              
      {
                                  
      int index = row.Cells.Count;
                                  row.Cells.AddAt(index, cell);
                              }

                          }

                          
      else if (row.RowType == DataControlRowType.DataRow)
                          
      {
                              TableCell cell 
      = new TableCell();
                              cell.Wrap 
      = Wrap;
                              CheckBox cb 
      = new CheckBox();
                              cell.Width 
      = Unit.Pixel(50);
                              cb.ID 
      = "ItemCheckBox";
                              cell.Controls.Add(cb);
                              
      if (CheckColumnAlign == CheckColumnAlign.Left)
                              
      {
                                  row.Cells.AddAt(
      0, cell);
                              }

                              
      else
                              
      {
                                  
      int index = row.Cells.Count;
                                  row.Cells.AddAt(index, cell);
                              }

                          }

                      }

      用于記錄CheckBox的ID的屬性

       public string CheckBoxID
              
      {
                  
      get
                  
      {
                      
      return "ItemCheckBox";
                  }

              }

      使用的時候,只需要設置擴展GridView的ShowCheckAll=True,設置CheckColumnAlign為Left,CheckBox列在最左邊,Right在最右面,注意因為沒有添加Columns,所以Columns并沒有因為因為添加了CheckBox列而變化,在Column的索引中,CheckBox列不在計算范圍。
      在擴展的GridView的OnRowDataBound事件中,就可以通過
      CheckBox cb = e.Row.FindControl(gridView.CheckBoxID) as CheckBox;
      if(cb!=null)

          if(cb.Checked)
         {
              //...
         }
      }
      來獲取是否已經選中此行。
      上篇文章:手把手教你如何擴展GridView之自動排序篇
       

      posted @ 2007-06-07 20:48  Robin Zhang  閱讀(13984)  評論(13)    收藏  舉報
      主站蜘蛛池模板: 人妻护士在线波多野结衣| 国产国产午夜福利视频| 亚洲精品久久久久久下一站| 高清在线一区二区三区视频| 99国产精品永久免费视频| 久久久无码精品亚洲日韩蜜臀浪潮| 精品国产乱码久久久久夜深人妻 | 亚洲色偷偷色噜噜狠狠99| 中国老熟女重囗味hdxx| 国产精品自在拍在线播放| 国产午夜福利视频在线| 成人午夜大片免费看爽爽爽| 欧洲无码一区二区三区在线观看 | 国产精品普通话国语对白露脸| 欧美18videosex性欧美tube1080| 人妻被猛烈进入中文字幕| 亚洲精品男男一区二区| 国产午夜91福利一区二区| 丁香五月亚洲综合深深爱| 国产一区二区三区不卡视频| 欧美一级黄色影院| 99riav国产精品视频| 日韩毛片在线视频x| 亚洲欧美日韩综合在线丁香| 浦城县| 久久久久人妻一区精品| 国产精品二区中文字幕| 昭苏县| 成人精品老熟妇一区二区| 国产精品一二三区蜜臀av| 国产国产午夜福利视频| 上林县| 思思热在线视频精品| 久久婷婷成人综合色综合| 成人av久久一区二区三区| 老司机午夜精品视频资源| 深夜精品免费在线观看| 国产精品一区二区三区色| 一区二区三区国产亚洲网站| 久久精品国产免费观看频道| 无码激情亚洲一区|