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