GridView既强大又好用。为了让它更强大、更好用,我们来写一个继承自GridView的控件。
[索引页]
[源码下载]


扩展GridView控件(5) - 固定指定行、指定列


作者:webabcd


/*正式版的实现 开始*/

介绍
扩展GridView控件:
固定指定行、指定列,根据RowType固定行,根据RowState固定行

使用方法(设置FixRowColumn复合属性):
FixRowType - 需要固定的行的RowType(用逗号“,”分隔)
FixRowState - 需要固定的行的RowState(用逗号“,”分隔)
FixRows - 需要固定的行的索引(用逗号“,”分隔)
FixColumns - 需要固定的列的索引(用逗号“,”分隔)
TableWidth - 表格的宽度
TableHeight - 表格的高度


关键代码
css
}

c#
扩展GridView控件(5) - 固定指定行、指定列using System;
扩展GridView控件(5) - 固定指定行、指定列
using System.Collections.Generic;
扩展GridView控件(5) - 固定指定行、指定列
using System.Text;
扩展GridView控件(5) - 固定指定行、指定列
扩展GridView控件(5) - 固定指定行、指定列
using System.Web.UI.WebControls;
扩展GridView控件(5) - 固定指定行、指定列
using System.Web.UI;
扩展GridView控件(5) - 固定指定行、指定列
扩展GridView控件(5) - 固定指定行、指定列
namespace YYControls.SmartGridViewFunction
}

/*正式版的实现 结束*/


/*测试版的实现 开始*/

介绍
平时使用GridView的时候会有固定表头、指定行或指定列的需求,就像Excel冻结行、列那样。其实我们可以用CSS来搞定。扩展一下GridView,通过设置几个属性来达到这样的功能。


控件开发
1、新建一个继承自GridView的类,另外为了保持滚动条状态,还要继承IPostBackDataHandler接口

2、新建一个FixRowCol类,有七个属性
扩展GridView控件(5) - 固定指定行、指定列using System;
扩展GridView控件(5) - 固定指定行、指定列
using System.Collections.Generic;
扩展GridView控件(5) - 固定指定行、指定列
using System.Text;
扩展GridView控件(5) - 固定指定行、指定列
扩展GridView控件(5) - 固定指定行、指定列
using System.ComponentModel;
扩展GridView控件(5) - 固定指定行、指定列
扩展GridView控件(5) - 固定指定行、指定列
namespace YYControls.SmartGridView

3、在继承自GridView的类中加一个复杂对象属性,该复杂对象就是第2步创建的那个FixRowCol
扩展GridView控件(5) - 固定指定行、指定列        private FixRowCol _fixRowCol;
        }

4、重写OnRowDataBound以设置每个单元格的样式,从而实现固定表头、指定行或指定列的功能。

5、增加两个私有变量

6、重写GridView的OnPreRender方法,用于注册两个HiddenField,以及注册设置GridView的滚动条的位置的javascript代码

7、重写GridView的Render方法,将GridView用一个div包裹起来。

8、获取存储了滚条位置信息的HiddenField的值
扩展GridView控件(5) - 固定指定行、指定列        void IPostBackDataHandler.RaisePostDataChangedEvent()


控件使用
添加这个控件到工具箱里,然后拖拽到webform上,设置其FixRowCol下的7个属性即可。IsFixHeader是固定表头否?;IsFixPager是固定分页行否?;FixRowIndices是需要固定的行的索引(用逗号“,”分隔);FixColumnIndices是需要固定的列的索引(用逗号“,”分隔);TableWidth是表格的宽度;TableHeight是表格的高度;EnableScrollState为是否保持滚动条的状态
ObjData.cs
扩展GridView控件(5) - 固定指定行、指定列using System;
扩展GridView控件(5) - 固定指定行、指定列
using System.Data;
扩展GridView控件(5) - 固定指定行、指定列
using System.Configuration;
扩展GridView控件(5) - 固定指定行、指定列
using System.Web;
扩展GridView控件(5) - 固定指定行、指定列
using System.Web.Security;
扩展GridView控件(5) - 固定指定行、指定列
using System.Web.UI;
扩展GridView控件(5) - 固定指定行、指定列
using System.Web.UI.WebControls;
扩展GridView控件(5) - 固定指定行、指定列
using System.Web.UI.WebControls.WebParts;
扩展GridView控件(5) - 固定指定行、指定列
using System.Web.UI.HtmlControls;
扩展GridView控件(5) - 固定指定行、指定列
扩展GridView控件(5) - 固定指定行、指定列
using System.ComponentModel;
扩展GridView控件(5) - 固定指定行、指定列

Default.aspx

/*测试版的实现 结束*/


OK
[源码下载]

相关文章:

  • 2021-04-11
  • 2021-06-09
  • 2022-02-06
  • 2021-06-03
  • 2021-11-19
  • 2022-12-23
  • 2021-11-28
猜你喜欢
  • 2022-12-23
  • 2022-02-07
  • 2021-09-16
  • 2021-09-21
  • 2022-12-23
  • 2021-10-06
  • 2021-10-25
相关资源
相似解决方案