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

作者: jillzhang  來源: 博客園  發布時間: 2008-09-25 14:27  閱讀: 5880 次  推薦: 0   原文鏈接   [收藏]  
 
[1] 手把手教你如何擴展GridView之自帶CheckBox
[2] 手把手教你如何擴展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;
                    }

                }

            }

        }

 

[第1頁][第2頁]
0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()