FineUI/FineUI_v6/FineUI.Examples/tree/tree_contextmenu.aspx
三生石上 62ef818ff0 v6.0.3
2017-09-05 11:30:31 +08:00

129 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ 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>