上接扩展GridView控件(9) - 给数据行增加右键菜单

简介:
2、新建一个ContextMenu实体类,有六个属性
InBlock.gif using System; 
InBlock.gif using System.Collections.Generic; 
InBlock.gif using System.Text; 
InBlock.gif 
InBlock.gif using System.ComponentModel; 
InBlock.gif using System.Web.UI; 
InBlock.gif 
InBlock.gif namespace YYControls.SmartGridView 
InBlock.gif
InBlock.gif         /// <summary> 
InBlock.gif         /// ContextMenu 的摘要说明。 
InBlock.gif         /// </summary> 
InBlock.gif        [ToolboxItem( false)] 
InBlock.gif         public  class ContextMenu 
InBlock.gif        { 
InBlock.gif                 private  string _icon; 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 文字左边的图标的链接 
InBlock.gif                 /// </summary> 
InBlock.gif                 public  string Icon 
InBlock.gif                { 
InBlock.gif                        get {  return _icon; } 
InBlock.gif                        set { _icon = value; } 
InBlock.gif                } 
InBlock.gif 
InBlock.gif                 private  string _text; 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 菜单的文字 
InBlock.gif                 /// </summary> 
InBlock.gif                 public  string Text 
InBlock.gif                { 
InBlock.gif                        get {  return _text; } 
InBlock.gif                        set { _text = value; } 
InBlock.gif                } 
InBlock.gif                
InBlock.gif                 private  string _commandButtonId; 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 所调用的命令按钮的ID 
InBlock.gif                 /// </summary> 
InBlock.gif                 public  string CommandButtonId 
InBlock.gif                { 
InBlock.gif                        get {  return _commandButtonId; } 
InBlock.gif                        set { _commandButtonId = value; } 
InBlock.gif                } 
InBlock.gif 
InBlock.gif                 private  string _navigateUrl; 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 链接的url 
InBlock.gif                 /// </summary> 
InBlock.gif                 public  string NavigateUrl 
InBlock.gif                { 
InBlock.gif                        get {  return _navigateUrl; } 
InBlock.gif                        set { _navigateUrl = value; } 
InBlock.gif                } 
InBlock.gif 
InBlock.gif                 private ItemTypeCollection _itemType; 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 右键菜单的项的类别 
InBlock.gif                 /// </summary> 
InBlock.gif                 public ItemTypeCollection ItemType 
InBlock.gif                { 
InBlock.gif                        get {  return _itemType; } 
InBlock.gif                        set { _itemType = value; } 
InBlock.gif                } 
InBlock.gif 
InBlock.gif                 private TargetCollection _target; 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 链接的target 
InBlock.gif                 /// </summary> 
InBlock.gif                 public TargetCollection Target 
InBlock.gif                { 
InBlock.gif                        get {  return _target; } 
InBlock.gif                        set { _target = value; } 
InBlock.gif                } 
InBlock.gif 
InBlock.gif 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 右键菜单的项的类别 
InBlock.gif                 /// </summary> 
InBlock.gif                 public  enum ItemTypeCollection 
InBlock.gif                { 
InBlock.gif                         /// <summary> 
InBlock.gif                         /// 链接 
InBlock.gif                         /// </summary> 
InBlock.gif                        Link, 
InBlock.gif                         /// <summary> 
InBlock.gif                         /// 按钮 
InBlock.gif                         /// </summary> 
InBlock.gif                        Command, 
InBlock.gif                         /// <summary> 
InBlock.gif                         /// 分隔线 
InBlock.gif                         /// </summary> 
InBlock.gif                        Separator 
InBlock.gif                } 
InBlock.gif 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 链接的target 
InBlock.gif                 /// </summary> 
InBlock.gif                 public  enum TargetCollection 
InBlock.gif                { 
InBlock.gif                         /// <summary> 
InBlock.gif                         /// 新开窗口 
InBlock.gif                         /// </summary> 
InBlock.gif                        Blank, 
InBlock.gif                         /// <summary> 
InBlock.gif                         /// 当前窗口 
InBlock.gif                         /// </summary> 
InBlock.gif                        Self, 
InBlock.gif                         /// <summary> 
InBlock.gif                         /// 跳出框架 
InBlock.gif                         /// </summary> 
InBlock.gif                        Top 
InBlock.gif                } 
InBlock.gif        } 
InBlock.gif}
 
3、新建一个继承自CollectionBase的类ContextMenus
InBlock.gif using System.Collections; 
InBlock.gif using System.ComponentModel; 
InBlock.gif using System.Web.UI; 
InBlock.gif 
InBlock.gif namespace YYControls.SmartGridView 
InBlock.gif
InBlock.gif         /// <summary> 
InBlock.gif         /// ContextMenus 的摘要说明。 
InBlock.gif         /// 注意要继承自CollectionBase 
InBlock.gif         /// </summary> 
InBlock.gif        [ 
InBlock.gif        ToolboxItem( false), 
InBlock.gif        ParseChildren( true
InBlock.gif        ] 
InBlock.gif         public  class ContextMenus : CollectionBase 
InBlock.gif        { 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 构造函数 
InBlock.gif                 /// </summary> 
InBlock.gif                 public ContextMenus() 
InBlock.gif                        :  base() 
InBlock.gif                { 
InBlock.gif                } 
InBlock.gif 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 实现IList接口 
InBlock.gif                 /// 获取或设置指定索引处的元素。 
InBlock.gif                 /// </summary> 
InBlock.gif                 /// <param name="index">要获得或设置的元素从零开始的索引</param> 
InBlock.gif                 /// <returns></returns> 
InBlock.gif                 public ContextMenu  this[ int index] 
InBlock.gif                { 
InBlock.gif                        get 
InBlock.gif                        { 
InBlock.gif                                 return (ContextMenu) base.List[index]; 
InBlock.gif                        } 
InBlock.gif                        set 
InBlock.gif                        { 
InBlock.gif                                 base.List[index] = (ContextMenu)value; 
InBlock.gif                        } 
InBlock.gif                } 
InBlock.gif 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 实现IList接口 
InBlock.gif                 /// 将某项添加到 System.Collections.IList 中。 
InBlock.gif                 /// </summary> 
InBlock.gif                 /// <param name="item">要添加到 System.Collections.IList 的 System.Object。</param> 
InBlock.gif                 public  void Add(ContextMenu item) 
InBlock.gif                { 
InBlock.gif                         base.List.Add(item); 
InBlock.gif                } 
InBlock.gif 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 实现IList接口 
InBlock.gif                 /// 从 System.Collections.IList 中移除特定对象的第一个匹配项。 
InBlock.gif                 /// </summary> 
InBlock.gif                 /// <param name="index">要从 System.Collections.IList 移除的 System.Object</param> 
InBlock.gif                 public  void Remove( int index) 
InBlock.gif                { 
InBlock.gif                         if (index > -1 && index <  base.Count) 
InBlock.gif                        { 
InBlock.gif                                 base.List.RemoveAt(index); 
InBlock.gif                        } 
InBlock.gif                } 
InBlock.gif 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// ToString() 
InBlock.gif                 /// </summary> 
InBlock.gif                 /// <returns></returns> 
InBlock.gif                 public  override  string ToString() 
InBlock.gif                { 
InBlock.gif                         return  "ContextMenus"
InBlock.gif                } 
InBlock.gif        } 
InBlock.gif}
 
4、在继承自GridView的类中加一个复杂对象属性,该复杂对象就是第3步创建的那个ContextMenus
InBlock.gif private ContextMenus _contextMenus; 
InBlock.gif                 /// <summary> 
InBlock.gif                 /// 行的右键菜单集合 
InBlock.gif                 /// </summary> 
InBlock.gif                [ 
InBlock.gif                PersistenceMode(PersistenceMode.InnerProperty), 
InBlock.gif                DesignerSerializationVisibility(DesignerSerializationVisibility.Content), 
InBlock.gif                Description( "行的右键菜单"), 
InBlock.gif                Category( "扩展"
InBlock.gif                ] 
InBlock.gif                 public  virtual ContextMenus ContextMenus 
InBlock.gif                { 
InBlock.gif                        get 
InBlock.gif                        { 
InBlock.gif                                 if (_contextMenus ==  null
InBlock.gif                                { 
InBlock.gif                                        _contextMenus =  new ContextMenus(); 
InBlock.gif                                } 
InBlock.gif                                 return _contextMenus; 
InBlock.gif                        } 
InBlock.gif                }
 
 




相关文章
|
算法 Java
JAVA 雪花算法 唯一ID生成工具类
JAVA 雪花算法 唯一ID生成工具类
2053 0
|
索引 存储 数据库
数据库设计规范
基于阿里数据库设计规范扩展而来
40934 3
|
消息中间件 SQL 存储
超详细的RabbitMQ入门,看这篇就够了!
RabbitMQ入门,看这篇就够了
180716 56
|
Java 数据库连接 数据库
Java数据库连接池原理与简易实现
Java数据库连接池原理与简易实现
|
存储 弹性计算 编解码
阿里云服务器计算型c5、c6、c6a、c6e实例规格有什么区别?如何选择?
本文介绍了阿里云服务器计算型c5、c6、c6a、c6e实例规格的区别,以及选择参考。
1696 0
阿里云服务器计算型c5、c6、c6a、c6e实例规格有什么区别?如何选择?
|
SQL 监控 C#
C# Winform制作虚拟键盘,支持中文
原文:C# Winform制作虚拟键盘,支持中文           最近在做一个虚拟键盘功能,代替鼠标键盘操作,效果如下:        实现思路:          1  构建中文-拼音 数据库,我用的是SQ...
2544 0
|
数据库 关系型数据库 MySQL
|
.NET C# 开发框架
利用Linq对集合元素合并、去重复处理
本文转载:http://www.cnblogs.com/yjmyzz/archive/2012/12/18/2823170.html 今天写代码时,需要对一个数组对象中按一定规则合并、去重处理,不想再毫无新意手动写For循环遍历(天天写一样的代码很没劲),于是依旧linq,发现真心方便: using System; using System.
1156 0
|
SQL Go 索引
高效的SQLSERVER分页查询(推荐)
原文:高效的SQLSERVER分页查询(推荐) Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID、YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询每页30条,查询第1500页(即第45001-450...
4961 1