2
我正在为CheckOutEventArgs添加事件处理程序,并试图获取结帐用户详细信息。以下是我的代码。无法在添加事件处理程序后签出组件或页面
public void Subscribe()
{
EventSystem.Subscribe<Page, CheckOutEventArgs>(PageCheckOutWarning,
EventPhases.Initiated);
EventSystem.Subscribe<Component, CheckOutEventArgs>(ComponentCheckOutWarning,
EventPhases.Initiated);
}
private void ComponentCheckOutWarning(Component component,
CheckOutEventArgs args, EventPhases phase)
{
logdetails("Checkout User-->" + component.CheckOutUser.Title.ToString());
}
当我尝试检出组件/页面时,在Tridion Explorer错误消息框中出现此错误。
对象引用不设置到对象
VersionedItem也将包含模板。而不是EventPhases.Initiated使用EventPhases.Processed。还要将null检查添加到component.CheckOutUser。 – Bappi 2012-07-27 12:33:42
我想在结帐时提供页面和组件的警告消息。如果同一个修改者签出页面/组件,那么不会有问题,如果修改者和签出用户不相同,那么我必须显示警告消息。为了实现这一点,我需要订阅组件和页面的权利?或者有没有办法在单订阅中做到这一点?或者有没有更好的办法? – user1428019 2012-07-27 12:51:25
VersionedItem将覆盖页面,组件?我可以使用subscribe()吗?并正在VersionedItem vitem = session.GetObject(page.Id)作为VersionedItem; vitem.Revisor.Title;它仅给出当前签出的用户详细信息。对于当前签出的用户,我尝试了page.CheckOutUser.Title,但两者都给出相同的输出 – user1428019 2012-07-27 12:58:55