13.自定义菜单
“自定义菜单”是指向鼠标右键弹出菜单增加菜单项,通过"MenuBeforePopup"事件、调用AddMenu( )函数、以及"MenuClicked"事件,实现了菜单的自定义,整个过程是动态的。
详细的过程是:当鼠标右键菜单即将要弹出时,Treelist会触发页面的OnEvent(id, "MenuBeforePopup", ...)事件,在这个事件的js中,你可以通过调用AddMenu( )函数向Treelist动态增加菜单项;如果用户选中了你定义的菜单项,Treelist会触发OnEvent(id, "MenuClicked", ...)事件,从而达到了自定义菜单功能的目的.
在demo中有详细的演示页,相信您一看就明白。
AddMenu( 参数 )函数中的参数可以是XML串、非XML的文字串,或URL,其规则举例如下:
<items>
<item id="3103" text="热销" icon="buttons.zip#303.ico">
<item id="KB3104" text="滞销产品" icon="buttons.zip#304.ico">
<item id="31041" text="库存1" style="checkbox" checked="true" icon="buttons.zip#304.ico" detail="浮动的详细说明,可选"/>
<item id="31042DM" text="库存2" enable="false" detail="浮动的详细说明,可选"/>
</item>
</items>
如果采用非XML的普通串,其举例如下:
//多个菜单项之间以回车符分隔
var s = "id=40N01; text=男帽; icon=buttons.zip#301.ico; detail=夏季时装\r\n";
s += "id=4002; text=时髦头巾; icon=buttons.zip#302.ico; detail=优惠直销"
规则1:如果是XML串,元素名须为item;
规则2:如果是XML串,item允许有下级item,表示菜单项的子菜单:
规则3:属性有id、text、icon、enable、style、checked、detail;
规则4:属性 style 的可用值有Normal、checkbox、radiobutton,默认是Normal;
规则5:如果 style="checkbox" 或 "radiobutton",那么属性 Checked 的值可以为 true 或 false,表示选中或未选中;
规则6:id可以是任意串, 如果是纯数字串, 则必须 >=3000 , 切记.
规则7:如果需要在英文环境(例如英文操作系统)运行、或需要中英文切换的,那么 text 的内容必须用竖线 "|" 分隔中英文,比如 "text=帽子|Hat", 系统会根据当前语言自动取得竖线左侧或右侧部分.