分享
 
 
 

如何在asp.net页面上放置的控件上实现左右键菜单,同时对之操作(1)

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

前言:

大家也许开发了很多windows界面的解决方案,对于菜单的使用可以说是滚瓜烂熟,当然,如何实现windows窗口上的左右键功能也是不在话下。

但是如何在web窗口实现菜单呢?

很多人说。用javascript或者是vbscript来实现。完全正确。一般说来是在前台用脚本语言来写。现在也有基于不是用脚本语言的控件的方式来实现的方式。用控件来实现的方法大家可以参考我写的《基于asp.net的webmenu的数据操作》一文,用控件很容易的。

我说的是老生常谈的问题,如果高手路过,就请你给予指正,还望不要给太多的砖头。

正文:

实现左右键的弹出,以及选择左右键的不同菜单,点击菜单后可以有不同的处理结果,例如弹出有模式和无模式对话框等。

如下,一一介绍:

(1):在控件的Click事件和dblClick事件中弹出菜单。

前提条件:控件支持单击和双击事件。(不支持单击和双击的控件恐怕不多吧。嘿嘿)

在控件的Click事件和dblClick事件里面添加自己的菜单函数。这个函数一般是在屏幕上画一个表格。达到弹出菜单的作用。

如下为我的画表格的原型函数:

function showdiv(div,XPos,YPos)

其中,Div为菜单的类型。比如类型为“变电站”或者“线路”,二者弹出的菜单的内容是不同的。通过这来实现在同一个控件上弹出多个菜单的作用。

其中,XPos,YPos的作用为在什么地方弹出菜单,一般说来在鼠标指针的偏下一点和偏右一点为益。

题外:怎么得到XPos,YPos,可以通过取得屏幕坐标来获取。

此函数由JavaScript实现。

假设为“线路”,那么我们看到的为上文的图示,怎么才实现画框的呢?我的实现方法示在本函数里面调用添加菜单函数。本函数实际上是在数组里面添加值,将每个菜单的项目添加到数组中,在下面的menustyle函数中将数组的值取出来。本函数的原型如下:

addMenuItem(text, url, img)

其中,text为菜单上显示的内容

其中,Url为点击改菜单后链接到什么地方的地址。

Image是可选项目。表示是图形时,菜单上显示图形。

如下为本函数:

function addMenuItem(text, url, img){

if(img) menuItems[menuItemNum] = new Array(text, url, img);

elseif(text) menuItems[menuItemNum] = new Array(text, url);

else menuItems[menuItemNum] = new Array(); menuItemNum++;

}

同时还可增加菜单的风格以及菜单的点击和mousemove效果,函数为:menuStyle(),无参数。

最后,要显示菜单,显示菜单函数为:showMenu(),无参数。

这样就实现了菜单的弹出。

如下为完整的实例代码:

sub GNV_click(ByVal Button, ByVal Key, ByVal WindowCoord, ByVal WorldCoord)

{

select case button

case 1 '左键

set m_oCurrentCoordinate = WindowCoord ‘表示鼠标位置,其他的不同控件要通过不同的方法来获取这值。

call showdiv("线路",m_oCurrentCoordinate.x ,m_oCurrentCoordinate.y + 15)

}

以上代码由vbscript实现

如下由javascript实现

function showdiv(div,XPos,YPos)

{ //重定义数组

menuItemNum = 0;

menuItems = Array();

menuXPos = XPos;

menuYPos = YPos;

switch(div){

case "菜单类型":

//重定义高度和宽度

menuWidth = 143;

//menu width 每个汉字宽度24

menuHeight = 158; //menu height

addMenuItem();

break;

case "另外一个菜单类型": //另外一种情况。略

default:

break;

}

menuStyle(); //菜单风格

showMenu(); //显示菜单

}

menuStyle(); //函数略,在下面的选择菜单和点击菜单中使用。

function showMenu(){

menuPopup.show(menuXPos, menuYPos, menuWidth, menuHeight, document.body); return false;

}

(未完待续)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有