我有一个像这样的 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;
}
问题是,当我右键单击节点并选择“重命名”时,节点仅会在一瞬间变成一个文本框,然后它会返回正常模式。
我怎样才能摆脱这个问题?