1

我有一个像这样的 radTreeView。

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1">
<telerik:RadTreeView ID="RadTreeView1" CheckBoxes="true" Runat="server" 
    OnContextMenuItemClick= "menuClicked" OnClientContextMenuItemClicking="clientMenuClicking"
    OnNodeEdit="RadTreeView1_NodeEdit">

<ContextMenus>
        <telerik:RadTreeViewContextMenu ID="ctxMenuAdd" runat="server">
            <Items>
                <telerik:RadMenuItem Value="addNode" Text="Add Node">
                </telerik:RadMenuItem>
                <telerik:RadMenuItem Value="delNode" Text="Delete Node">
                </telerik:RadMenuItem> 
                <telerik:RadMenuItem Value="renNode" Text="Rename Node">
                </telerik:RadMenuItem>                  
            </Items>
         </telerik:RadTreeViewContextMenu>
</ContextMenus>

</telerik:RadTreeView>
</telerik:RadAjaxPanel> 

这是客户端的 ContextMenuClicking javascript。

function clientMenuClicking(sender, args) 
    {
        var menuItem = args.get_menuItem();
        var treeNode = args.get_node();
        menuItem.get_menu().hide();

        switch (menuItem.get_value()) 
        {
            case "addNode":
                var windowResult = window.showModalDialog("newNode.html", "Enter Value", "dialogHeight: 300px; dialogWidth: 300px;");                    
                document.getElementById("HiddenField1").value = windowResult;
                break;
            case "renNode":
                treeNode.startEdit();                    
                break;                
        }
    }

最后这是 onNodeEdit 的服务器端代码

protected void RadTreeView1_NodeEdit(object sender, RadTreeNodeEditEventArgs e)
    {
        e.Node.Text = e.Text;
    }

问题是,当我右键单击节点并选择“重命名”时,节点仅会在一瞬间变成一个文本框,然后它会返回正常模式。

我怎样才能摆脱这个问题?

4

0 回答 0