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