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