[当前,我正在使用RadTreeView Telerik控件来显示分层数据以及每个节点的添加/编辑/删除功能。使用TreeView - Context Menu,已经实现了,但是我正在尝试实现它,如下所示:
它以下列方式工作:a)当通过单击“ +”图标扩展节点时,“添加组”按钮在其最后一个子节点的底部可见。b)选择一个节点后,将显示“编辑”和“删除”图标。
单击这些图标中的任何一个将打开相应操作的对话框。
因此,我需要用模拟显示的显示替换上下文菜单。我试图使用NodeTemplate如下所示:
<NodeTemplate>
<div>
<span>Test</span>
</div>
</NodeTemplate>
但是,它将所有节点的文本设为“ Test”。
有人可以帮我吗?
<script type="text/javascript">
function OnClientContextMenuItemClicking(sender, args)
{
var menuItem = args.get_menuItem();
var treeNode = args.get_node();
menuItem.get_menu().hide();
switch (menuItem.get_value())
{
case "edit":
treeNode.startEdit();
break;
}
}
</script>
希望这会有所帮助,
我在服务器端实现了RadTreeView。我虽然很容易在服务器端进行管理,尤其是在绑定和处理事件方面
这是我的Default.aspx.cs
using Telerik.Web.UI;
public partial class Default : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
}
protected void RadTreeView1_NodeEdit(object sender, RadTreeNodeEditEventArgs e)
{
// This is the serverside event that is triggered on Edit
RadTreeNode nodeEdited = e.Node; // This is the current node that is clicked
string newText = e.Text;
nodeEdited.Text = newText;
}
//
//.........
//.........
}
这是额外的东西。在服务器端,您还可以找到这样的节点,
RadTreeNode node = RadTreeView1.FindNodeByText("TestOne");
// now edit and change any test
node.Text = "Test";
我希望这会有所帮助。