129 lines
5.2 KiB
Plaintext
129 lines
5.2 KiB
Plaintext
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="tree_contextmenu.aspx.cs" Inherits="FineUI.Examples.tree.tree_contextmenu" %>
|
||
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<head runat="server">
|
||
<title></title>
|
||
</head>
|
||
<body>
|
||
<form id="form1" runat="server">
|
||
<f:PageManager ID="PageManager1" runat="server" />
|
||
<f:Tree ID="Tree1" Width="550px" ShowHeader="true" Title="树控件(右键菜单)" EnableCollapse="true" EnableSingleClickExpand="false"
|
||
runat="server">
|
||
<Nodes>
|
||
<f:TreeNode Text="中国" Expanded="true">
|
||
<f:TreeNode Text="河南省">
|
||
<f:TreeNode Text="驻马店市" NodeID="zhumadian">
|
||
<f:TreeNode Text="遂平县" Leaf="false" NodeID="suiping">
|
||
<f:TreeNode Text="槐树乡" Leaf="false" NodeID="huaishu">
|
||
<f:TreeNode Text="陈庄村" NodeID="chenzhuang">
|
||
</f:TreeNode>
|
||
</f:TreeNode>
|
||
<f:TreeNode Text="嵖岈山乡" NodeID="chayashanxiang">
|
||
</f:TreeNode>
|
||
</f:TreeNode>
|
||
<f:TreeNode Text="西平县" Leaf="false" NodeID="xiping">
|
||
<f:TreeNode Text="芦庙乡" NodeID="lumiaoxiang">
|
||
</f:TreeNode>
|
||
<f:TreeNode Text="杨庄乡" NodeID="yangzhuangxiang">
|
||
</f:TreeNode>
|
||
</f:TreeNode>
|
||
</f:TreeNode>
|
||
<f:TreeNode Text="漯河市" NodeID="luohe" />
|
||
</f:TreeNode>
|
||
<f:TreeNode Text="安徽省" Expanded="true" NodeID="anhui">
|
||
<f:TreeNode Text="合肥市" Expanded="true" NodeID="hefei">
|
||
<f:TreeNode Text="金色池塘小区" NodeID="golden">
|
||
</f:TreeNode>
|
||
<f:TreeNode Text="中国科学技术大学" NodeID="ustc">
|
||
</f:TreeNode>
|
||
</f:TreeNode>
|
||
</f:TreeNode>
|
||
</f:TreeNode>
|
||
</Nodes>
|
||
<Listeners>
|
||
<f:Listener Event="beforeitemcontextmenu" Handler="onTreeNodeContextMenu" />
|
||
</Listeners>
|
||
</f:Tree>
|
||
<f:Menu ID="Menu1" runat="server">
|
||
<Items>
|
||
<f:MenuButton ID="btnExpandNode" EnablePostBack="false" runat="server" Text="展开全部">
|
||
<Listeners>
|
||
<f:Listener Event="click" Handler="onExpandNode" />
|
||
</Listeners>
|
||
</f:MenuButton>
|
||
<f:MenuButton ID="btnCollapseNode" EnablePostBack="false" runat="server" Text="折叠全部">
|
||
<Listeners>
|
||
<f:Listener Event="click" Handler="onCollapseNode" />
|
||
</Listeners>
|
||
</f:MenuButton>
|
||
</Items>
|
||
<Listeners>
|
||
<f:Listener Event="show" Handler="onMenuShow" />
|
||
</Listeners>
|
||
</f:Menu>
|
||
</form>
|
||
<br />
|
||
注:在叶子节点上点击右键,则弹出菜单的菜单项都是禁用状态。
|
||
<script src="../res/js/jquery.min.js" type="text/javascript"></script>
|
||
<script>
|
||
|
||
var treeID = '<%= Tree1.ClientID %>';
|
||
var menuID = '<%= Menu1.ClientID %>';
|
||
// 保存当前菜单对应的树节点ID
|
||
var currentNodeId;
|
||
|
||
// 返回false,来阻止浏览器右键菜单
|
||
function onTreeNodeContextMenu(view, record, item, index, event) {
|
||
currentNodeId = record.getId();
|
||
|
||
F(menuID).showAt(event.getXY());
|
||
|
||
event.stopEvent();
|
||
}
|
||
|
||
// 设置所有菜单项的禁用状态
|
||
function setMenuItemsDisabled(disabled) {
|
||
var menu = F(menuID);
|
||
$.each(menu.items.items, function (index, item) {
|
||
disabled ? item.disable() : item.enable();
|
||
});
|
||
}
|
||
|
||
// 显示菜单后,检查是否禁用菜单项
|
||
function onMenuShow() {
|
||
if (currentNodeId) {
|
||
var tree = F(treeID);
|
||
var store = tree.getStore();
|
||
|
||
var nodeData = store.getById(currentNodeId);
|
||
if (nodeData.data.leaf) {
|
||
setMenuItemsDisabled(true);
|
||
} else {
|
||
setMenuItemsDisabled(false);
|
||
}
|
||
}
|
||
}
|
||
|
||
function onExpandNode() {
|
||
if (currentNodeId) {
|
||
var tree = F(treeID);
|
||
var store = tree.getStore();
|
||
|
||
tree.expandNode(store.getById(currentNodeId), true);
|
||
}
|
||
}
|
||
|
||
function onCollapseNode() {
|
||
if (currentNodeId) {
|
||
var tree = F(treeID);
|
||
var store = tree.getStore();
|
||
|
||
tree.collapseNode(store.getById(currentNodeId), true);
|
||
}
|
||
}
|
||
|
||
</script>
|
||
</body>
|
||
</html>
|