首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

网上找了一个改写的GridView类,不知道如何用,大家看看

2011-12-27 
网上找了一个改写的GridView类,不知道怎么用,大家看看usingSystemusingSystem.Collections.Genericusing

网上找了一个改写的GridView类,不知道怎么用,大家看看
using   System;
using   System.Collections.Generic;
using   System.ComponentModel;
using   System.Text;
using   System.Web;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Reflection;
using   System.Text.RegularExpressions;

namespace   ZLDK.JXGL.WebControls
{    
        [ToolboxData( " <{0}:uGridView   runat=server> </{0}:uGridView> ")]
        public   class   uGridView   :   GridView,   iuControl
        {
                //委托事件
                public   delegate   void   SelectNumberEventHandler(SelectNumberEventArgs   e);

                private   static   int   summaryCount   =   0;   //保存其数量值
                private   Paging.PagingStyleCollection   _pagingStyle;   //是否要进行分页


                #region   构造函数
                public   uGridView():   base()
                {
                        ViewState[ "IsHandle "]   =   true;
                        ViewState[ "IsFixHeader "]   =   true;
                        //   新增“uGridView_RowDataBound”事件处理
                        this.RowDataBound   +=   new   GridViewRowEventHandler(uGridView_RowDataBound);
                }
                #endregion

                #region   属性
                [Bindable(true)]
                [Category( "Appearance ")]
                [DefaultValue( " ")]
                [Localizable(true)]
                public   string   CodeID
                {
                        get
                        {
                                String   s   =   (String)ViewState[ "CodeID "];
                                return   ((s   ==   null)   ?   String.Empty   :   s);
                        }

                        set
                        {
                                ViewState[ "CodeID "]   =   value;


                        }
                }

                [Description( "是否可以使用 ")]
                [DefaultValue(true)]
                public   override   bool   Enabled
                {
                        get
                        {
                             
                                return   base.Enabled;
                        }
                        set
                        {
                                if   (IsHandle)
                                        base.Enabled   =   value;
                        }
                }

                [Bindable(true)]
                [Category( "Appearance ")]
                [DefaultValue(true)]
                [Localizable(true)]
                [Description( "是否可以编程控制Enabled ")]
                public   bool   IsHandle
                {
                        get
                        {
                                return   (bool)ViewState[ "IsHandle "];
                        }

                        set
                        {
                                ViewState[ "IsHandle "]   =   value;
                        }
                }

                ///   <summary>
                ///   是否固定表头?
                ///   </summary>
                [Description( "是否固定表头? "),   Category( "扩展 "),   DefaultValue(false),   NotifyParentProperty(true)]


                public   virtual   bool   IsFixHeader
                {
                        get   {   return   (bool)ViewState[ "IsFixHeader "];   }
                        set   {   ViewState[ "IsFixHeader "]   =   value;   }
                }
               
                //获取记录总数
                [Description( "数据总数 "),   DefaultValue( "0 "),   Category( "扩展 ")]
                public   int   SummaryCount
                {
                        get   {   return   summaryCount;   }
                        set   {   summaryCount   =   value;   }
                }

                //   自定义分页样式          
                [Description( "自定义分页样式 "),   DefaultValue( "default "),   Category( "扩展 ")]
                public   Paging.PagingStyleCollection   PagingStyle
                {
                        get   {   return   _pagingStyle;   }
                        set   {   _pagingStyle   =   value;   }
                }

                #endregion

                #region   数据绑定事件

                protected   void   uGridView_RowDataBound(object   sender,   GridViewRowEventArgs   e)
                {
                        //固定表头
                        if   (this.IsFixHeader   &&   e.Row.RowType   ==   DataControlRowType.Header)
                        {
                                for   (int   j   =   0;   j   <   e.Row.Cells.Count;   j++)
                                {
                                        e.Row.Cells[j].Attributes.Add( "style ",   "   position:   relative;   top:   expression(this.offsetParent.scrollTop-1); ");
                                }


                        }
                }

                #endregion

                #region   固定表头

                protected   override   int   CreateChildControls(System.Collections.IEnumerable   dataSource,   bool   dataBinding)
                {
                        if   (dataSource   ==   null)
                        {
                                DataControlField[]   fieldArray   =   new   DataControlField[this.Columns.Count];
                                this.Columns.CopyTo(fieldArray,   0);

                                if   (fieldArray   !=   null   &&   fieldArray.Length   >   0)
                                {
                                        if   (this.ShowHeader   &&   (this.HeaderRow   ==   null))
                                        {
                                                GridViewRow   headerRow   =   null;
                                                if   (this.HeaderRow   ==   null)
                                                {
                                                        headerRow   =   this.CreateRow(-1,   -1,   DataControlRowType.Header,   DataControlRowState.Normal);
                                                        this.InitializeRow(headerRow,   fieldArray);
                                                        FieldInfo   field   =   typeof(System.Web.UI.WebControls.GridView).GetField( "_headerRow ",   BindingFlags.NonPublic   |   BindingFlags.Instance);
                                                        if   (field   !=   null)


                                                        {
                                                                field.SetValue(this,   headerRow);
                                                        }
                                                        Table   headerTable   =   this.CreateChildTable();
                                                        headerTable.Rows.Add(headerRow);
                                                        Controls.Add(headerTable);
                                                }
                                                else
                                                {
                                                        headerRow   =   this.HeaderRow;
                                                }

                                                GridViewRowEventArgs   args   =   new   GridViewRowEventArgs(headerRow);

                                                this.OnRowCreated(args);
                                                if   (dataBinding)
                                                {
                                                        headerRow.DataBind();
                                                        this.OnRowDataBound(args);


                                                        headerRow.DataItem   =   null;
                                                }
                                        }
                                }
                                return   0;
                        }
                        else
                        {
                                return   base.CreateChildControls(dataSource,   dataBinding);
                        }
                }
                #endregion



[解决办法]
mark
[解决办法]
留个记号!用到时再看!
[解决办法]
代码太长了啊,应该是一个自定义控件,可以编译成dll文件,然后就像其他控件一样直接拖到页面上直接使用的
[解决办法]
留下脚印

热点排行