当我显示任何错误消息时,Checkout事件处理程序以读取模式打开项目

时间:2012-09-13 09:23:08

标签: tridion tridion-2011

我正在尝试在检出页面或组件时在 Tridion消息栏中显示警告消息。

我已经订阅并尝试过(已处理和已启动)阶段,并尝试订阅和订阅了解答。

下面的订阅行:

EventSystem.Subscribe<VersionedItem, CheckOutEventArgs>(displaymessage, EventPhases.Processed);

以下功能:

public override void displaymessage(VersionedItem item, TcmEventArgs args, EventPhases phase)
    {
        if (item.GetType().Name == "Component" || item.GetType().Name == "Page")
        {
            string chkuser = "aa"               ;
            sting revisor = "bb"
            if(chkuser  != revisor
               {
                   throw new Exception("Warning-->some one is already modified this item and u are checking out now");
               }

        }
    }

如果结帐用户和帐户不同,我想显示警告消息。我将很快拿出结帐用户和管理员的详细信息并进行比较。

的问题:

  1. 当我选择任何项目并单击“签出”时,上面的代码会在Tridion消息栏中显示该消息。同时,该项目未处于编辑模式,处于只读模式。
  2. 当我选择任何项目并clik“打开”或双击该项目时,将触发结帐事件,但消息栏中不会显示该消息。并且该项目仍然是只读模式。
  3. 如果我在我的代码中使用了try {} Catch {},当到达“抛出新异常”行时,代码会自动进入catch块。即使在“第1(问题:1)”情况下也不会显示和修改。
  4. 任何人都能对此有所了解吗?那会很棒!!

1 个答案:

答案 0 :(得分:1)

在提交事务之前提交异常时,它将回滚。如果这样做,您需要在TransactionCommitted阶段执行逻辑。

但更重要的是,我建议不要滥用异常消息来提供状态消息。你想要实现什么目标?