webabcd - 专注于asp.net

ASP.NET
从现在开始 一切都不晚
posts - 149, comments - 3966, trackbacks - 326, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
[最后更新:2008.03.28]
GridView既强大又好用。为了让它更强大、更好用,我们来写一个继承自GridView的控件。
[源码下载(C#)]
[源码下载(VB)] 感谢旌浪提供VB版本 相关文章地址


扩展GridView控件(索引) - 增加多个常用功能


作者:webabcd


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

文章索引
扩展GridView控件(0) - 基本架构、增加事件和要点汇总
扩展GridView控件(1) - 鼠标经过行时改变行的样式
扩展GridView控件(2) - 复合排序和排序状态提示
扩展GridView控件(3) - 根据按钮的CommandName设置其客户端属性
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(5) - 固定指定行、指定列
扩展GridView控件(6) - 响应行的单击事件和双击事件
扩展GridView控件(7) - 行的指定复选框选中时改变行的样式
扩展GridView控件(8) - 导出数据源的数据为Excel、Word或Text
扩展GridView控件(9) - 给数据行增加右键菜单
扩展GridView控件(10) - 自定义分页样式
扩展GridView控件(11) - 合并指定列的相邻且内容相同的单元格
注:除了“固定指定行、指定列”仅支持IE外,其它均同时支持IE和FF


控件截图



控件使用
1、鼠标经过行的时候改变该行的样式,鼠标离开行的时候恢复该行的样式
使用方法(设置属性): 
MouseOverCssClass - 鼠标经过行时行的 CSS 类名

2、对多个字段进行复合排序;升序、降序的排序状态提示
使用方法(设置SmartSorting复合属性):
AllowSortTip - 是否启用排序提示
AllowMultiSorting - 是否启用复合排序
SortAscImageUrl - 升序提示图片的URL(不设置则使用默认图片)
SortDescImageUrl - 降序提示图片的URL(不设置则使用默认图片)
SortAscText - 升序提示文本
SortDescText - 降序提示文本

3、根据按钮的CommandName设置其客户端属性
使用方法(设置ClientButtons集合属性):
BoundCommandName - 需要绑定的CommandName
AttributeKey - 属性的名称
AttributeValue - 属性的值(两个占位符:{0} - CommandArgument;{1} - Text)
Position - 属性的值的位置

4、联动复选框(复选框的全选和取消全选)。选中指定的父复选框,则设置指定的所有子复选框为选中状态;取消选中指定的父复选框,则设置指定的所有子复选框为取消选中状态
使用方法(设置CascadeCheckboxes集合属性):
ParentCheckboxID - 模板列中 父复选框ID
ChildCheckboxID - 模板列中 子复选框ID
YYControls.Helper.SmartGridView中的静态方法
List GetCheckedDataKey(GridView gv, int columnIndex)
List GetCheckedDataKey(GridView gv, string checkboxId)

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

6、响应行的单击事件和双击事件,并在服务端处理
使用方法(设置属性):
BoundRowClickCommandName - 行的单击事件需要绑定的CommandName
BoundRowDoubleClickCommandName - 行的双击事件需要绑定的CommandName

7、行的指定复选框选中的时候改变该行的样式,行的指定复选框取消选中的时候恢复该行的样式
使用方法(设置CheckedRowCssClass复合属性):
CheckBoxID - 模板列中 数据行的复选框ID
CssClass - 选中的行的 CSS 类名

8、导出数据源的数据为Excel、Word或Text(应保证数据源的类型为DataTable或DataSet)
使用方法:
为SmartGridView添加的方法
Export(string fileName)
Export(string fileName, ExportFormat exportFormat)
Export(string fileName, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, int[] columnIndexList, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, int[] columnIndexList, string[] headers, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, string[] columnNameList, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, string[] columnNameList, string[] headers, ExportFormat exportFormat, Encoding encoding)


9、给数据行增加右键菜单,响应服务端事件或超级链接
使用方法(设置ContextMenus集合属性):
Text - 菜单的文本内容
BoundCommandName - 需要绑定的CommandName
NavigateUrl - 链接的URL
Target - 链接的目标窗口或框架
SmartGridView的属性ContextMenuCssClass - 右键菜单的级联样式表 CSS 类名(右键菜单的结构div ul li a)

10、自定义分页样式。显示总记录数、每页记录数、当前页数、总页数、首页、上一页、下一页、末页和分页按钮
使用方法(设置CustomPagerSettings复合属性):
PagingMode - 自定义分页的显示模式
TextFormat - 自定义分页的文本显示样式(四个占位符:{0}-每页显示记录数;{1}-总记录数;{2}-当前页数;{3}-总页数)

11、合并指定列的相邻且内容相同的单元格
使用方法(设置属性):
MergeCells -  需要合并单元格的列的索引(用逗号“,”分隔)

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


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

控件开发
扩展GridView控件(一)——鼠标经过行时改变行的样式

扩展GridView控件(二)——给字段标题加上排序状态

扩展GridView控件(三)——单击命令按钮弹出确认框

扩展GridView控件(四)——每行复选框的全选与取消全选

扩展GridView控件(五)——固定表头、指定行或指定列

扩展GridView控件(六)——数据行响应鼠标的单击和双击事件

扩展GridView控件(七)——改变通过复选框选中的行的样式

扩展GridView控件(八)——导出为Excel

扩展GridView控件(九)——给数据行增加右键菜单

扩展GridView控件(十)——扩展分页功能


控件截图



控件使用
1、鼠标经过行时改变行的样式
CssClassMouseOver - 鼠标经过行时行的样式的CSS类名

2、给字段标题加上排序状态
设置其SortTip下的4个属性即可
SortAscImage - 升序提示图片
SortAscText - 升序提示文本
SortDescImage - 降序提示图片
SortDescText - 降序提示文本

3、单击命令按钮弹出确认框
设置其ConfirmButtons属性
CommandName - 命令按钮的CommandName属性
ConfirmMessage - 弹出的确认框所显示的文字

4、每行复选框的全选与取消全选
在模板列的头模板处添加一个复选框,在模板列的项模板处添加一个复选框,然后设置控件的CheckboxAlls属性
CheckboxAllID - 模板列全选复选框ID
CheckboxItemID - 模板列项复选框ID

5、固定表头、指定行或指定列
设置其FixRowCol下的6个属性
IsFixHeader - 固定表头否?
IsFixPager - 固定分页行否?
FixRowIndices - 需要固定的行的索引(用逗号“,”分隔)
FixColumnIndices - 需要固定的列的索引(用逗号“,”分隔)
TableWidth - 表格的宽度
TableHeight - 表格的高度
EnableScrollState - 是否保持滚动条的状态

6、数据行响应鼠标的单击和双击事件
RowClickButtonID - 行单击事件所对应的按钮的ID
RowDoubleClickButtonID - 行双击事件所对应的按钮的ID

7、改变通过CheckBox选中的行的样式
CheckBoxID - 模板列的项复选框的ID
CssClassRowSelected - 选中行的样式的CSS类名

8、导出为Excel
在GridView内加一个按钮
CommandName属性设置为“ExportToExcel”
CommandArgument属性的值用“;”做分隔符分为两部分,左边的部分为导出Excel的文件名称,右边的部分为需要隐藏的列的索引(列索引用“,”分开)

9、给数据行增加右键菜单
ItemType - 右键菜单的项的类别(Link,Command,Custom,Separator)
Icon - 文字左边的图标的链接
Text - 菜单的文字
CommandButtonId - 所调用的命令按钮的ID
NavigateUrl - 链接的url
Target - 链接的target(Blank,Self,Top)
Key - 自定义属性key
Value - 自定义属性value

10、扩展分页功能
设置PagingStyle属性为Default
设置GridView的原有属性PageButtonCount,FirstPageText,PreviousPageText,NextPageText,LastPageText,FirstPageImageUrl,PreviousPageImageUrl,NextPageImageUrl,LastPageImageUrl

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


OK
[源码下载]
评论共3页: 1 2 3 下一页 

Feedback

#1楼 [楼主]   回复  引用  查看    

2007-06-27 08:01 by webabcd      
@andrew
动态创建的话,需要每次页面加载都创建,而不能只在
if (!IsPostBack) {} 创建

#2楼    回复  引用    

2007-06-27 08:39 by andrew [未注册用户]
感谢@webabcd的回复,
如果仅仅是创建列都还好,还必须每次postback都得重新绑定数据,为什么动态添加的BoundFiled却没有消失呢

#3楼    回复  引用    

2007-06-27 08:42 by andrew [未注册用户]
"模版列静态生成,但其他列动态生成,postback的时候,模版列还是会消失,其它列却存在"
动态创建的BoundFiled存在,静态创建的模版列却消失了,真是郁闷啊

#4楼    回复  引用    

2007-06-27 08:45 by andrew [未注册用户]
@webabcd大哥
如果每次都动态生成,绑定数据,在性能方面会不会大大降低呢?

#5楼 [楼主]   回复  引用  查看    

2007-06-27 10:09 by webabcd      
@andrew
确实是让人不解的问题
BoundFiled没问题,而TemplateField却有问题
它们都是继承自DataControlField,DataControlField有TrackViewState()方法,本应该可以保持状态的

没办法,现在的解决方案只能是每次加载都动态创建列,性能的开销应该不大
另外,不管是不是动态创建列,如果你要分页,或者排序之类的都是要再绑定数据的

#6楼    回复  引用    

2007-06-27 11:04 by andrew [未注册用户]
非常感谢@webabcd的关注.
现在看来目前只能舍弃这种动态创建列的方式了.如果有好的解决方案,别忘了加到SmartGridView中哦,再次感谢!

#7楼 [楼主]   回复  引用  查看    

2007-06-27 11:32 by webabcd      
@andrew
:)
不谢

现在正在重构SmartGridView中……
同时优化,增强,并且支持ie和ff
希望7月底之前能完工

这之后再扩展新的功能

#8楼    回复  引用  查看    

2007-06-29 08:57 by 众吉网信      
加油,当下来研究研究,一起努力

#9楼 [楼主]   回复  引用  查看    

2007-06-29 10:18 by webabcd      
@众吉网信
:)
从现在的进度看,7月底之前应该能出正式版

#10楼    回复  引用    

2007-07-03 12:50 by KELLYNIC [未注册用户]
我觉得没必要扩充那么多功能

多了,也无非是JavaScript

没什么意思啊

#11楼 [楼主]   回复  引用  查看    

2007-07-03 17:11 by webabcd      
@KELLYNIC
关键对我等懒人比较有用
非常讨厌做重复性的工作,所以才写在控件里

#12楼    回复  引用    

2007-07-12 12:28 by 式 [未注册用户]
好贴

#13楼 [楼主]   回复  引用  查看    

2007-07-12 14:39 by webabcd      
@式
:)

#14楼    回复  引用    

2007-07-14 23:48 by liyunshun83@hotmail.com [未注册用户]
哥们知道你这里有,我就不费大事写了,搞的累死了

#15楼 [楼主]   回复  引用  查看    

2007-07-16 08:09 by webabcd      
@liyunshun83@hotmail.com
:)
这部分重写完后,还会加更多的功能

#16楼    回复  引用    

2007-07-20 18:50 by xunlong [未注册用户]
应该加上列筛选的功能,有时候要显示的列太多了,全部显示出来太难看,能否根据数据源返回的列选择要显示的哪些列

#17楼 [楼主]   回复  引用  查看    

2007-07-23 07:47 by webabcd      
@xunlong
这个功能要通过<Columns />实现啊

#18楼    回复  引用    

2007-07-23 19:30 by xunlong [未注册用户]
我想要的是动态的控制,而不是在页面上写死

#19楼 [楼主]   回复  引用  查看    

2007-07-24 07:41 by webabcd      
@xunlong
可以在codebehind里动态地创建列
参考一下
http://www.cnblogs.com/webabcd/archive/2006/12/19/596349.html
http://www.cnblogs.com/webabcd/archive/2006/12/21/598819.html

#20楼    回复  引用    

2007-07-26 09:39 by Alex_li [未注册用户]
webabcd
您好
关于 《扩展GridView控件(五)——固定表头、指定行或指定列》的问题请教

我需要动态的设定我需要固定的行与列,我如何能做到.
我需要动态的绑定我的栏位,如何做到
对了,能留下你的QQ吗,我想请教一些问题

#21楼 [楼主]   回复  引用  查看    

2007-07-26 11:08 by webabcd      
@Alex_li
可以动态地设置相关的属性即可

qq不经常用
一般用msn
webabcd
hotmail
com

#22楼    回复  引用    

2007-07-26 14:52 by flycat [未注册用户]


这个控件真是不错,等米下锅了,期待正式版的推出。

#23楼 [楼主]   回复  引用  查看    

2007-07-26 18:19 by webabcd      
@flycat
:)
8月初之前肯定会改完,发上来

#24楼    回复  引用  查看    

2007-08-03 14:21 by 公木子      
SmartGridViewAlpha 和SmartGridView 有什么不 同SmartGridView好象功能少多。

#25楼    回复  引用  查看    

2007-08-03 14:29 by 公木子      
比如 SmartGridView

<CheckboxAlls>
<yyc:CheckboxAll CheckboxAllID="checkall" checkboxItemID="checkitem" />
</CheckboxAlls>

就没上面的属性

#26楼    回复  引用    

2007-08-03 16:53 by 秦东国 [未注册用户]
请问各位大侠
能不能给 ObjectDataSource之类的数据源控件扩展一下
我希望能够让ObjectDataSource在页面上显示一定的内容:例如标签,按钮等等?

#27楼 [楼主]   回复  引用  查看    

2007-08-03 18:37 by webabcd      
@公木子
正式版还没有完全写完,下个礼拜会放上来的,相对原版本会有很多改进

@秦东国
那不是ObjectDataSource的工作

#28楼    回复  引用    

2007-08-04 09:05 by 秦东国 [未注册用户]
@webabcd
谢谢回复
我以前没有做过控件开发的事情

最近由于用到分页存储过程,
而.net又没有类似的控件

在网上找了找
发现也有这样的控件
但下下来
就是套不上去

以前也遇到过类似的问题
当时我做了个用户控件
来控制数据源控件的参数
从而达到分页的效果
但感觉不爽
而且用的时候还有点麻烦
还要给ObjectDataSource控件些几句代码

现在我想
如果能够直接把这些分页的动作加在ObjectDataSourc上面
不是很方便吗
但试了试
总给ObjectDataSourc加不上子控件

请问有相关的解决办法吗?

#29楼 [楼主]   回复  引用  查看    

2007-08-06 08:03 by webabcd      
@秦东国
ObjectDataSourc自带高效分页的方法的
SelectCountMethod
SortParameterName

<asp:Parameter Name="sort" Type="String" />
<asp:Parameter Name="filter" Type="String" />
<asp:Parameter Name="startRowIndex" Type="Int32" />
<asp:Parameter Name="maximumRows" Type="Int32" />

#30楼    回复  引用  查看    

2007-08-06 10:48 by 东国      
@webabcd
ObjectDataSource 自带分页功能?
我一直不知道啊,
我昨天还花了很久的时间,自己做了一个分页的控件,
用了两个自定义控件来实现分页功能
我把代码贴出来了
http://www.cnblogs.com/qindgfly/archive/2007/08/06/844424.html
代码可能很糟糕,初学者,希望webabcd指导阿

#31楼 [楼主]   回复  引用  查看    

2007-08-06 12:27 by webabcd      
@东国
:)
不用自己写的
参考这篇
http://www.dotnetbips.com/articles/b6787e60-b0c9-496e-9d10-19bc7af4add2.aspx

#32楼    回复  引用  查看    

2007-08-06 15:39 by 东国      
@webabcd
感谢webabcd提供的资料,
我看了,英文的,虽然看得有些吃力
不过还是基本读懂了
看来我自己做的工作真是白费了
让webabcd见笑了 ^^

#33楼 [楼主]   回复  引用  查看    

2007-08-06 18:34 by webabcd      
@东国
:)
不谢

#34楼    回复  引用    

2007-08-07 12:20 by JLKEngine [未注册用户]
兄弟,请问你的最新版本---------正式版何时发布呢? 希望你给的承诺要实现哈, 我们等着米下锅呢!!

#35楼    回复  引用    

2007-08-07 12:21 by JLKEngine [未注册用户]
@webabcd, 等着你早日发布你的正式版,期待我们盼望已久的控件到来!!

#36楼    回复  引用    

2007-08-07 12:23 by JLKEngine [未注册用户]
成都领君科技系列中间件产品资料及试用版下载地址
公司网站下载地址:
http://www.linjon.cn 在首页左边导航栏的软件下载进入。
FTP下载地址:
ftp://210.41.107.38 用户名与密码都是openlabftp,位置在linjon目录下。
邮箱下载地址:
JLK_Engine@163.com ,密码:JLKEngine

欢迎大家看看SuperFlow工作流平台展示!!
QQ: 26326507, E-mail: hy2001al@163.com,

#37楼 [楼主]   回复  引用  查看    

2007-08-07 13:25 by webabcd      
@JLKEngine
明天会放上来的

#38楼    回复  引用    

2007-08-08 18:21 by JLKEngine [未注册用户]
兄弟,看了你写的控件,感觉还不错,不过基于标准控件GridView的扩展老外也写过很多例子, 希望你能把该控件最重要的一写特性写出来,---------〉如何进行行编辑维护数据,光用于数据浏览感觉用处不大。 希望你目前做的翻页模式能采用客户端模式,包括排序,翻页,单击,双击事件。 不过还是希望你能做得更好,为大家提供更好得控件, 大力支持!!

成都领君科技有限公司 http://www.linjon.cn
欢迎大家看看SuperFlow工作流平台展示!!
QQ: 26326507, E-mail: hy2001al@163.com

#39楼 [楼主]   回复  引用  查看    

2007-08-08 18:43 by webabcd      
@JLKEngine
:)
嗯,努力中……

#40楼    回复  引用    

2007-08-09 17:23 by allen [未注册用户]
very good ,正式版终于出来了,等了好久了,有没有英文版的?

#41楼 [楼主]   回复  引用  查看    

2007-08-09 19:00 by webabcd      
@allen
:)
现在没有啊

把中文注释都翻译成英文的工程太“浩大”了
我决定
把中文注释去了就是英文版了

#42楼    回复  引用  查看    

2007-08-09 20:52 by 数据绑定者      
链接已经是正式版了吗?下来研究下

#43楼 [楼主]   回复  引用  查看    

2007-08-10 07:41 by webabcd      
@数据绑定者
:)
是地

#44楼    回复  引用  查看    

2007-08-10 08:45 by 数据绑定者      
我记得以前有个可以查看前面的两个列,然后拖动横向滚动条只滚动其余的列的例子啊,这里怎么没有呢?

像EXCEL里的分屏显示一样

#45楼 [楼主]   回复  引用  查看    

2007-08-10 09:04 by webabcd      
@数据绑定者
带的demo里有啊
固定了左边两列

#46楼    回复  引用  查看    

2007-08-10 13:56 by 数据绑定者      
你确定demo里有?你的demo里的SmartGridView.aspx这个页面吗?
你自己下载下来看,没有固定列的哦。

#47楼 [楼主]   回复  引用  查看    

2007-08-10 14:35 by webabcd      
@数据绑定者
我重新下了一下,测了一下
就是SmartGridView.aspx这个页面,已经固定了左边的两列啊

另外,只有这个功能是只支持IE的,其他都支持IE和FF

#48楼    回复  引用  查看    

2007-08-10 15:28 by 数据绑定者      
呵呵,不好意思误解你了,我用FireFox看的,呵呵

#49楼 [楼主]   回复  引用  查看    

2007-08-10 16:23 by webabcd      
@数据绑定者
:)
关键是我没说清楚

这个功能搞最长时间了,因为想可以随便固定任何行或任何列,这很难在FF里实现

#50楼    回复  引用    

2007-08-12 09:50 by shark0304 [未注册用户]
今天上来看到正式版了,好高兴。
现在很想知道,当数据很多,几w条或10几w条或的时候用Gridview会不会影响数据?

#51楼    回复  引用    

2007-08-12 09:51 by shark0304 [未注册用户]
速度。

#52楼 [楼主]   回复  引用  查看    

2007-08-13 07:41 by webabcd      
@shark0304
肯定会的,那就应该用存储过程分页了
了解一下ObjectDataSource吧,用它可以轻松地实现大数据量的分页

#53楼    回复  引用    

2007-08-13 13:00 by JLKEngine [未注册用户]
兄弟,你写的翻页及排序能使用客户端方式就更好! 还有对行选择时采用客户端模式,也就是提供客户端的事件,这样方便完成AJAXZ模式对后台的处理,希望你能好好改进哈!

#54楼    回复  引用    

2007-08-13 13:02 by JLKEngine [未注册用户]
成都领君科技有限公司网站下载地址:
http://www.linjon.cn 在首页左边导航栏的软件下载进入。
FTP下载地址:
ftp://210.41.107.38 用户名与密码都是openlabftp 在linjon目录下有我公司产品资料。
邮箱下载地址:
JLK_Engine@163.com ,密码:JLKEngine


兄弟,对你开发的控件扩展,我们还是很支持的,希望你努力做得更好!!

#55楼 [楼主]   回复  引用  查看    

2007-08-13 17:53 by webabcd      
@JLKEngine
行的选择有了啊
就是通过复选框选中行的那个

:)
多谢

#56楼    回复  引用    

2007-08-22 16:44 by 兄弟能发一份给我不 [未注册用户]
不错

但下载你的源码后,我的开发环境下注册后,不能正常使用
pghdragon@talkweb.com.cn

#57楼 [楼主]   回复  引用  查看    

2007-08-22 18:29 by webabcd      
@兄弟能发一份给我不
.net的,不用注册dll的
把编译好的dll直接引用进来就行啊

提供的下载地址里的压缩包就是全部的源代码和示例,没有什么保留的

#58楼    回复  引用    

2007-08-27 16:38 by wikdd [未注册用户]
我怎么下载下来没有DLL文件呢?

#59楼 [楼主]   回复  引用  查看    

2007-08-27 17:44 by webabcd      
@wikdd
编译一下就出来了

#60楼    回复  引用    

2007-08-27 19:03 by allen [未注册用户]
HI,在用您的控件时遇到3个问题,希望能得到您的帮助。
1。导出时,一定要加上前面那个checkbox列吗?
2。导出时,能不能不导出隐藏的列?
3。导出时,如果我的objectdatasource的其中一个参数是取的页面中的一个下拉框的值,因为viewstate要设为false,那么就objectdatasource就取不到我下拉框的值。。。。
期待您的回答,谢谢!

#61楼 [楼主]   回复  引用  查看    

2007-08-27 19:41 by webabcd      
@allen
其实我做的导出,就是将DataTable导出
为SmartGridView添加的方法
Export(string fileName)
Export(string fileName, ExportFormat exportFormat)
Export(string fileName, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, int[] columnIndexList, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, int[] columnIndexList, string[] headers, ExportFormat exportFormat, Encoding encoding)

详细的可以看看每个方法的注释

#62楼    回复  引用    

2007-08-28 07:49 by shunliy [未注册用户]
如果我动态设置数据源,怎么不能导出?

#63楼 [楼主]   回复  引用  查看    

2007-08-28 08:16 by webabcd      
@shunliy
可以尝试着这样
控件里我加了几个静态方法


YYControls.Helper.Common
Export(DataTable dt, int[] columnIndexList, string[] headers, ExportFormat exportFormat, string fileName, Encoding encoding)
导出的时候调用它就好了

#64楼    回复  引用    

2007-09-07 10:49 by DDD [未注册用户]
导出的时候有问题。提示数据源必须为DataTable和dataset
但是我的数据源是这样的。怎么出现错误??

#65楼 [楼主]   回复  引用  查看    

2007-09-07 12:09 by webabcd      
@DDD
要先绑定再用SmartGridView的导出方法

或者用
YYControls.Helper.Common.Export()

#66楼    回复  引用    

2007-09-20 01:22 by phis [未注册用户]
在UpdatePanel中,滚动条保持不了位置

ScrollX和ScrollY 两个属性没了?

#67楼 [楼主]   回复  引用  查看    

2007-09-20 08:13 by webabcd      
@phis
测试版有
正式版被我给去掉了

以后完善的时候会加上,并提供自动保持滚动条位置的功能

#68楼    回复  引用    

2007-09-20 09:36 by bili [未注册用户]


求助求助!!请问在gridview 如果分页每页20条,但是我想每5条进行分段还可以啊,每段间用一条线隔开。

白思不得其解,给小弟一点思路吗???

我今年刚毕业现在工作了,在学校里这些东西都没有学到。工作时发现学校学的东西,,,哎。。。。。

请帮助小弟一下吧。 不努力是不行的啊。

#69楼 [楼主]   回复  引用  查看    

2007-09-20 12:22 by webabcd      
@bili
在RowDataBound里对Row进行操作

#70楼    回复  引用    

2007-09-20 22:12 by phis [未注册用户]
今天把这个控件用到自己写的一个小项目,真的很不错!
期待进一步完善......

#71楼    回复  引用    

2007-09-20 23:28 by Andychen [未注册用户]
很好的控件。感谢楼主,加油完善

#72楼 [楼主]   回复  引用  查看    

2007-09-21 07:36 by webabcd      
@phis
@Andychen
:)
不断添加新功能中……

#73楼    回复  引用    

2007-09-21 10:34 by allenzeng [未注册用户]
HI ,导出的时候是将objectdatasource指定的datatable导出,那么我要如何控制不导出smartgridview中的隐藏列?不知王兄可有好办法?
情况是这样的:我之前写程序的时候是为每个SmartGridView控件设置样式,后来为了统一修改颜色的方便,就在skin文件里面加了一段:
<yyc:SmartGridView runat="server" skinid="SmartGrid" Width="100%"
CellPadding="5" GridLines="Horizontal" EmptyDataText="无" EnableSortingAndPagingCallbacks="True">
<HeaderStyle BackColor="Silver" />
<AlternatingRowStyle BackColor="#FFC0C0" />
</yyc:SmartGridView>

然后我在页面的控件属性里面设置了skinid="SmartGrid",再把控件的样式设置代码去掉,这个时候问题出现了:如果去掉<HeaderStyle BackColor="#6B7EBF" />这一行,程序运行时会报错。
YYControls.SartGridViewFunction.FixRowColumnFunction的_sgv_RowDataBoundCell(object sender, GridViewTableCell gvtc)函数里,
// 固定列
if (Array.Exists(this._sgv.FixRowColumn.FixColumns.Split(','), delegate(string s) { return s == gvtc.ColumnIndex.ToString(); }))

该语句抛出NullReferenceException,this._sgv.FixRowColumn.FixColumns对象为空。

#75楼 [楼主]   回复  引用  查看    

2007-09-21 11:59 by webabcd      
@allenzeng
看一下这个方法
Export(string fileName, int[] columnIndexList, string[] headers, ExportFormat exportFormat, Encoding encoding)

可以设置导出哪列,也可以设置标题

#76楼 [楼主]   回复  引用  查看    

2007-09-21 12:02 by webabcd      
@碟子 MSN:archor1126@163.com (推荐) QQ:9997452
请下载新版本,已经改好了

#77楼    回复  引用    

2007-09-25 16:39 by anni [未注册用户]
很好!
我把单击事件绑定到selectrow,感觉动作很缓慢,单击后要停一下才有相应,怎么回事?

#78楼    回复  引用    

2007-09-25 16:40 by anni [未注册用户]
响应

#79楼 [楼主]   回复  引用  查看    

2007-09-25 17:07 by webabcd      
@anni
为了即可以响应双击事件和也可以响应单击事件
所以我把单击事件设置为单击后的300毫秒后响应

#80楼    回复  引用    

2007-09-27 21:37 by shark0304 [未注册用户]
导出EXCEL,在EXCEL里的显示太简单化了,可以先生成网页再导入到EXCEL里那样出来的报表就漂亮整齐多了,我花了两天的时间改进了下

#81楼 [楼主]   回复  引用  查看    

2007-09-28 07:48 by webabcd      
@shark0304
:)
兄弟可以把代码贴出来让大家看看

#82楼    回复  引用    

2007-10-02 11:58 by 浮动飞 [未注册用户]
双方都顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶的

#83楼 [楼主]   回复  引用  查看