在一个页面时,我们将点击组件外观选项卡我们可以看到仅低于插入按钮组件和模板中列出there.On点击,它会打开另一窗口“插入组件演示”还有,我们将有插入,靠近button.So现在我需要做的虽然插入我需要检查选择的组件和模板的组合是否已经存在有页面,或在不。如果是,那么它应该防止插入相同的弹出窗口,如“这个组合已经存在,选择其他组件”。 任何想法我可以如何继续。如何在插入按钮上触发Javascript?防止插入组件的相同组合模板:
编辑:
时,我就subscrbing页我得到erro.My代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Text;
using Tridion.ContentManager.Extensibility.Events;
using Tridion.ContentManager.Extensibility;
using Tridion.ContentManager.ContentManagement;
using System.IO;
using System.Windows.Forms;
namespace MyEventHandlers
{
[TcmExtension("MyEventHandlerExtension")]
public class MyEventHandler : TcmExtension
{
public MyEventHandler()
{
Subscribe();
}
public void Subscribe()
{
EventSystem.Subscribe<Page, SaveEventArgs>(SaveBtnInitiated, EventPhases.Initiated);
}
private void SaveBtnInitiated(Page subject, SaveEventArgs args, EventPhases phase)
{
try
{
List<string> allcplist = new List<string>();
List<string> allcplist = new List<string>();
foreach (ComponentPresentation cp in subject.ComponentPresentations)
{
allcplist.Add(cp.Component.Id + "," + cp.ComponentTemplate.Id);
}
List<string> uniquecplist = allcplist.Distinct().ToList();
if (allcplist.Count != uniquecplist.Count)
{
subject.Checkin(false);
throw new Exception("Page has duplicate component presentation");
}
catch(Exception)
{
}
}
为什么你签的页面?当你在启动阶段运行这个处理程序时,抛出异常将取消该操作。 除此之外,您通过捕获异常并且不做任何事情来取消异常。 – 2012-07-25 12:37:09
我删除了签入并使用保存。和它的工作。谢谢你arjen – SDLBeginner 2012-07-26 06:51:33