开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 8300|回复: 7

GridView重写ShowGridMenu通过右键菜单保存布局样式

[复制链接]

0

精华

10

贡献

18

赞扬

帖子
27
软币
491
在线时间
54 小时
注册时间
2013-7-5
QQ
发表于 2013-7-10 10:19:46 | 显示全部楼层 |阅读模式
本帖最后由 萧從军 于 2013-7-10 10:22 编辑

最近看到@天堂羽夜 搞得这个论坛挺好的,以前都是在5d6d上,现在终于找到组织了,以后跟大家一起来相互学习。
如题目,实现的效果是截图红色区域:
QQ截图20130710101233.jpg
代码如下:
  1. <p>  /// <summary>
  2.     /// GridView继承类
  3.     /// </summary>
  4.     public class GridViewEx : GridView
  5.     {</p><p>     #region 构造方法</p><p>        /// <summary>
  6.         /// 构造方法
  7.         /// </summary>
  8.         public GridViewEx()
  9.         {
  10.             PopupMenuShowing += GridViewEx_ShowGridMenu;
  11.         }</p><p>        #endregion</p><p> </p><p>       #region 事件</p><p>       /// <summary>
  12.         /// 添加菜单
  13.         /// </summary>
  14.         /// <param name="sender"></param>
  15.         /// <param name="e"></param>
  16.         private void GridViewEx_ShowGridMenu(object sender, PopupMenuShowingEventArgs e)
  17.         {
  18.             GridMenuShowAddIn(sender, e);
  19.         }</p><p>          #endregion</p><p>  </p><p>         #region 公共方法</p><p>         /// <summary>
  20.         /// 改写ShowGridMenu事件
  21.         /// </summary>
  22.         /// <param name="sender"></param>
  23.         /// <param name="e"></param>
  24.         protected void GridMenuShowAddIn(object sender, PopupMenuShowingEventArgs e)
  25.         {
  26.             if (e.MenuType == GridMenuType.Column && (e.HitInfo.InGroupPanel || e.HitInfo.InFilterPanel))
  27.             {
  28.                 e.Allow = false;
  29.                 return;
  30.             }</p><p>          if (e.MenuType == GridMenuType.Column)
  31.             {
  32.                 if (e.HitInfo.Column == null) return;</p><p>               var dxMenuItem = new DXMenuItem("恢复原有样式") {BeginGroup = true};
  33.                 dxMenuItem.Click += delegate { if (OnCleanLayout != null) OnCleanLayout(sender); };</p><p>                e.Menu.Items.Add(dxMenuItem);
  34.                 dxMenuItem = new DXMenuItem("保存当前样式");
  35.                 dxMenuItem.Click += delegate { if (OnSaveLayout != null) OnSaveLayout(sender); };</p><p>                e.Menu.Items.Add(dxMenuItem);
  36.                 dxMenuItem = new DXMenuItem("导出Excel");
  37.                 dxMenuItem.Click += delegate
  38.                     {
  39.                            try
  40.                                  {
  41.                                     var save = new SaveFileDialog {Title = "导出Excel", Filter = "Excel文件(*.xls)|*.xls"};
  42.                                      if (save.ShowDialog() == DialogResult.OK)
  43.                                      {
  44.                                                     (sender as GridView).ExportToXls(save.FileName);
  45.                                                     MessageUtil.ShowTips("导出成功!");
  46.                                                 }
  47.                                              
  48.                                             }
  49.                                             catch (Exception)
  50.                                             {
  51.                                                 MessageUtil.ShowTips("导出失败!");
  52.                                             }
  53.                                         };
  54.                 e.Menu.Items.Add(dxMenuItem);
  55.             }
  56.         }</p><p>      #endregion</p>
复制代码
新增的右键菜单功能实现,方法各异,就不再次多写!

评分

参与人数 8贡献 +4 赞扬 +8 收起 理由
zhu6006 + 1 赞一个
linuxpeng + 1 赞一个
ahgt + 1 赞一个
nickcole + 1 Thanks
wmpinger + 1 赞一个

查看全部评分

回复

使用道具 举报

0

精华

5097

贡献

5311

赞扬

管理员

帖子
1154
软币
21035
在线时间
4325 小时
注册时间
2013-6-7

黄马甲

发表于 2013-7-10 10:21:27 | 显示全部楼层
不错的教程,感谢支持~
回复

使用道具 举报

0

精华

941

贡献

1057

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
225
软币
8194
在线时间
1113 小时
注册时间
2013-6-8
发表于 2013-7-10 17:21:23 | 显示全部楼层
这个好,以后可能会用到
回复

使用道具 举报

0

精华

46

贡献

140

赞扬

帖子
134
软币
2300
在线时间
133 小时
注册时间
2013-6-7
发表于 2013-7-22 19:37:54 | 显示全部楼层
这个好,以后可能会用到
回复

使用道具 举报

0

精华

100

贡献

33

赞扬

帖子
132
软币
3320
在线时间
53 小时
注册时间
2013-8-31
发表于 2013-8-31 21:54:15 | 显示全部楼层
谢谢,又让我学了一招。
回复

使用道具 举报

0

精华

36

贡献

27

赞扬

帖子
125
软币
737
在线时间
64 小时
注册时间
2013-6-25
发表于 2013-9-4 20:01:42 | 显示全部楼层
这个可以有
回复

使用道具 举报

0

精华

0

贡献

513

赞扬

帖子
95
软币
1110
在线时间
69 小时
注册时间
2017-8-2
发表于 2024-2-21 17:18:53 | 显示全部楼层
Thanks for Sharing.
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-5-3 05:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表