一点一滴打造我们自己的web开发框架系列2【web右键菜单的开发(下)】

  【概述】几乎每个企业都有自己的核心东西或说是框架性的东西,框架的好处是将我们经常要使用的功能,控件等包装一个个
易于使用的单元,就算是初学者也极其容易上手,减少项目的开发成本。因此框架的重要性和好处是不言而喻的。在我的这个系列
(一点一滴打造我们自己的web开发框架系列 )当中,我将自己在开发过程中用到的一些东西陆续公布出来,和大家一起交流学习。

  这次我们接着上次我们开发的客户端web页面上的右键菜单(参看我上一篇文章:一点一滴打造我们自己的web开发框架系列【web右键菜单的开发(上)】 ),我们将它包装成服务器控件方便使用,毕竟我们大多数人还是习惯从工具栏直接拖拽出来使用,而不是写n多js代码。

  Web右键菜单服务器控件(WebContextMenu)开发的需求分析:
  1,我们需要一个菜单项的类(WebContextMenuItem)。
  2,其次在我们即将要实现的WebContextMenu中,我们肯定需要一个菜单项的集合对吧,不然怎么存放每个菜单项呢,因此需要一个菜单项的集合类(WebContextMenuItemCollection)。
  3,当然最后我们是实现WebContextMenu控件类。

  4,还要包含昨天我们用过的菜单的客户端脚本WebContextMenu.js及jquery.js。

  截个图大家看看控件的目录结构:

接下来,我们一个文件去实现,当然WebContextMenu.js昨天已经写好了,jquery.js包含进去就Ok了,注意一定要设为嵌入的资源,
WebContextMenuItem的实现:

代码

因为我们需要将WebContextMenuItem做为菜单的子控件,所以让他从WebControl继承,同时我们需要他在页面回传后能够通过视图状态保存原来我们设定的每个菜单项目,所以让他继承了IStateManager接口。

接下来,我们实现WebContextMenuItemCollection,菜单的集合类同样需要继承IStateManager接口,并且需要实现ICollection, IList的一些操作,方便我们在前台页面的.cs代码中来操作菜单。

代码

最后我们来实现WebContextMenu服务器控件

代码

这样一个右键菜单的服务器控件就实现了,那么我们在前台页面如何去用呢。
首先我们在前台aspx拖两个WebContextMenu服务器控件到页面上,别忘记先要拖个ScriptManager控件

代码

要设定右键菜单的区域:

代码
<div id="divSpan" style="color:Red;font-size:14px;font-weight:bold;height:123px;300px;background-color:#789ccd"></div>

第一种方式在.cs代码种添加菜单项目,我们给WebContextMenu1添加几个菜单项试试:

代码

第二种方式直接在aspx页面中像给dropdownlist添加下拉项一样添加菜单项

其中为Text,Image,Handler均为空的菜单项为分割栏,大家不要感到奇怪

代码
<cc1:WebContextMenuItem Text="" Image="" Handler="" />

这样一个Web页面的右键服务器控件就开发完成了,截个图完成本文的编写。

作者:Jackhuclan
出处:http://jackhuclan.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/jackhuclan/p/1614480.html