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


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


作者:webabcd


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

介绍
扩展GridView控件:
给数据行增加右键菜单,响应服务端事件或超级链接

使用方法(设置ContextMenus集合属性):
Text - 菜单的文本内容
BoundCommandName - 需要绑定的CommandName
NavigateUrl - 链接的URL
Target - 链接的目标窗口或框架
SmartGridView的属性ContextMenuCssClass - 右键菜单的级联样式表 CSS 类名(右键菜单的结构div ul li a)


关键代码
js
*/

css

c#
扩展GridView控件(9) - 给数据行增加右键菜单using System;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Collections.Generic;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Text;
扩展GridView控件(9) - 给数据行增加右键菜单
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Web.UI.WebControls;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Web.UI;
扩展GridView控件(9) - 给数据行增加右键菜单
扩展GridView控件(9) - 给数据行增加右键菜单
namespace YYControls.SmartGridViewFunction

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


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

介绍
给GridView的数据行增加右键菜单可以增加用户体验,不过实现起来挺麻烦的,现在我们扩展一下GridView控件以实现这样的功能。


控件开发
1、新建一个继承自GridView的类。
}

2、新建一个ContextMenu实体类,有六个属性
扩展GridView控件(9) - 给数据行增加右键菜单using System;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Collections.Generic;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Text;
扩展GridView控件(9) - 给数据行增加右键菜单
扩展GridView控件(9) - 给数据行增加右键菜单
using System.ComponentModel;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Web.UI;
扩展GridView控件(9) - 给数据行增加右键菜单
扩展GridView控件(9) - 给数据行增加右键菜单
namespace YYControls.SmartGridView

3、新建一个继承自CollectionBase的类ContextMenus
扩展GridView控件(9) - 给数据行增加右键菜单using System.Collections;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.ComponentModel;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Web.UI;
扩展GridView控件(9) - 给数据行增加右键菜单
扩展GridView控件(9) - 给数据行增加右键菜单
namespace YYControls.SmartGridView

4、在继承自GridView的类中加一个复杂对象属性,该复杂对象就是第3步创建的那个ContextMenus
扩展GridView控件(9) - 给数据行增加右键菜单        private ContextMenus _contextMenus;
        }

5、新建一个JavaScriptConstant类,把我们要用到的javascript存在一个常量里
扩展GridView控件(9) - 给数据行增加右键菜单using System;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Collections.Generic;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Text;
扩展GridView控件(9) - 给数据行增加右键菜单
扩展GridView控件(9) - 给数据行增加右键菜单
namespace YYControls.SmartGridView

6、重写OnPreRender方法,注册上面那段客户端脚本

7、重写OnRowDataBound给数据行增加客户端代码以调用我们注册的那段javascript,从而实现给GridView的数据行增加右键菜单的功能。


控件使用
添加这个控件到工具箱里,然后拖拽到webform上,设置如下属性:ItemType为右键菜单的项的类别(Link,Command,Separator);Icon为文字左边的图标的链接;Text为菜单的文字;CommandButtonId为所调用的命令按钮的ID;NavigateUrl为链接的url;Target为链接的target(Blank,Self,Top)
ObjData.cs
扩展GridView控件(9) - 给数据行增加右键菜单using System;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Data;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Configuration;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Web;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Web.Security;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Web.UI;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Web.UI.WebControls;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Web.UI.WebControls.WebParts;
扩展GridView控件(9) - 给数据行增加右键菜单
using System.Web.UI.HtmlControls;
扩展GridView控件(9) - 给数据行增加右键菜单
扩展GridView控件(9) - 给数据行增加右键菜单
using System.ComponentModel;
扩展GridView控件(9) - 给数据行增加右键菜单

Default.aspx

注:如果想修改右键菜单的样式,请自行修改javascript,我就不把他们弄出来了。

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


OK
[源码下载] 

相关文章:

  • 2021-12-07
  • 2021-12-25
  • 2022-12-23
  • 2022-12-23
  • 2021-03-31
  • 2021-06-04
  • 2021-09-18
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-04-14
  • 2021-06-08
  • 2021-11-29
  • 2021-08-30
相关资源
相似解决方案