2

我创建了两个自定义部分,它们从外部(非 umbraco)表中填充它们的树。我创建了 ITaskReturnUrl 的实现来处理节点的创建和删除——这很好用。如何使其与菜单操作一起使用:排序和移动?

我已将适当的操作添加到节点的菜单中,但是当我单击该操作时出现此错误:

No node exists with id '1'

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ArgumentException: No node exists with id '1'

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[ArgumentException: No node exists with id '1']
   umbraco.cms.businesslogic.CMSNode.setupNode() +239
   umbraco.cms.businesslogic.CMSNode..ctor(Int32 Id) +36
   umbraco.dialogs.moveOrCopy.Page_Load(Object sender, EventArgs e) +1241
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
   System.Web.UI.Control.OnLoad(EventArgs e) +92
   umbraco.BasePages.BasePage.OnLoad(EventArgs e) +14
   System.Web.UI.Control.LoadRecursive() +54
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772
  • 弗雷德里克
4

1 回答 1

1

我决定用 jquery-ui 实​​现我自己的排序页面。

为了到达新页面,我创建了一个实现 IAction 接口的新类(完整版):

public string JsFunctionName
{
   get
   {
      return "OpenSortWindow();";
   }
}

public string JsSource
{
   get { return "function OpenSortWindow(){ var node = UmbClientMgr.mainTree().getActionNode();UmbClientMgr.openModalWindow('/Umbraco/Dialogs/RaceNodeSort.aspx?id='+ node.nodeId, 'Sort items', true, 350, 380); }"; }
}

javascript 使用我的 aspx 端打开一个新对话框,允许用户对元素进行排序。请注意,我使用 UmbClientMgr.mainTree().getActionNode() 来获取当前节点并读取我插入到页面 URL 中的 nodeId 属性以将其传递给页面。

然后通过以下方式将此 Action-class 插入到上下文菜单中:

courseNode.Menu.Add(new RaceSortAction());
于 2013-02-24T13:14:19.620 回答