SitecoreEventArgs Result.Cancel = true 不取消事件
SitecoreEventArgs Result.Cancel = true not Canceling the event
在 sitecore Content Editor
我想取消添加一个 item.So 我使用了 Event Handler
item:added
并写了一个方法来取消事件..但是它现在正在工作,我花了很多精力但没有任何线索。
代码如下:
public void MoreThenOneAddressAllowed(object sender, EventArgs args)
{
var item = Event.ExtractParameter<Item>(args, 0);
if (item.TemplateID.ToString() == Settings.GetSetting("AddressEntryTemplateID"))
{
if (item.Parent.Fields["More than one address allowed"] != null && item.Parent.Fields["More than one address allowed"].Value != "1" && item.Parent.Children.Count >= 1)
{
SitecoreEventArgs evt = args as SitecoreEventArgs;
evt.Result.Cancel = true;
Sitecore.Context.ClientPage.ClientResponse.Alert("More than one address not allowed under this item!!");
}
}
}
这是配置文件中的条目:
<event name="item:added">
<handler type="EventHandlers.CompanyEventHandler" method="MoreThenOneAddressAllowed" />
</event>
我可以在内容编辑器中看到消息。但是item也添加了,有些我想停止添加item。
不知道为什么,确切地说。但是您也许应该考虑将此规则实现为插入规则。仅在还没有的元素上动态地为编辑器提供 "Insert Address" 选项。
有关如何设置的示例,请参见此处:http://www.newguid.net/sitecore/2011/sitecore-rules-engine-how-to-create-an-insert-option-rule/
您应该使用 item:creating
事件,因为它会更早发生。
item:added
会来不及了!
在 sitecore Content Editor
我想取消添加一个 item.So 我使用了 Event Handler
item:added
并写了一个方法来取消事件..但是它现在正在工作,我花了很多精力但没有任何线索。
代码如下:
public void MoreThenOneAddressAllowed(object sender, EventArgs args)
{
var item = Event.ExtractParameter<Item>(args, 0);
if (item.TemplateID.ToString() == Settings.GetSetting("AddressEntryTemplateID"))
{
if (item.Parent.Fields["More than one address allowed"] != null && item.Parent.Fields["More than one address allowed"].Value != "1" && item.Parent.Children.Count >= 1)
{
SitecoreEventArgs evt = args as SitecoreEventArgs;
evt.Result.Cancel = true;
Sitecore.Context.ClientPage.ClientResponse.Alert("More than one address not allowed under this item!!");
}
}
}
这是配置文件中的条目:
<event name="item:added">
<handler type="EventHandlers.CompanyEventHandler" method="MoreThenOneAddressAllowed" />
</event>
我可以在内容编辑器中看到消息。但是item也添加了,有些我想停止添加item。
不知道为什么,确切地说。但是您也许应该考虑将此规则实现为插入规则。仅在还没有的元素上动态地为编辑器提供 "Insert Address" 选项。
有关如何设置的示例,请参见此处:http://www.newguid.net/sitecore/2011/sitecore-rules-engine-how-to-create-an-insert-option-rule/
您应该使用 item:creating
事件,因为它会更早发生。
item:added
会来不及了!