Hey John,
The item is in all of the newly opened Content Editors, with no data
tree (the site tree), just the lone item. This is just weird, I do
have a OnSave() eventhandler for the same item. It really could be a
phenomena that happens between the two calls. The client really
isn't concerned; in other areas of the application the client
receives error messages from Sitecore and that is when they now that
the function actually worked. lol :) So, this isn't a big deal,
especially with our deadline.
What is concerning me is that the layout from the Master is not being
pulled into the newly created Item. Do I need to call the
base.OnItemCreated()? Or, is there anywhere in the eventHandler that
I need to do something special to insure that the layout is being
created along with the item? I did verify through Sitecore's UI that
the item is inherited from the corect master.
John, thank you for all of your time and intelligence on these
matters!
--- In sitecore@yahoogroups.com, "John West" <johnpwest3@...> wrote:
>
> Does it open the same item in all content editors, or different
items
> (maybe this is a result of default children in your master?).
>
> You may want to use item:added instead of item:created
> (http://sdn5.sitecore.net/FAQ/API/added%20or%20created%20event.aspx)
> or you may have to fall back to item:saved.
>
> Sitecore.DateUtil.IsoNow seems to provide a convenience for getting
> the system date in the required format.
>
> I just tested with a master which had a child, both based on the
same
> template which had a field named ItemCreationDate. I used the
> following configuration and code. I did not experience any issues
> using 5.3.2 071220 - the field was populated for both items and no
new
> content editor windows opened.
>
> <event name="item:created">
> <handler type="Global.Events.ItemEventHandler, Global"
> method="OnItemCreated">
> <FieldName>ItemCreationDate</FieldName>
> </handler>
> </event>
>
> using System;
>
> namespace Global.Events
> {
> public class ItemEventHandler
> {
> private string _fieldName = null;
>
> public string FieldName
> {
> get { return (_fieldName); }
> set { _fieldName = value; }
> }
>
> public void OnItemCreated( object Sender, EventArgs args )
> {
> Sitecore.Diagnostics.Assert.IsNotNull(_fieldName, "Field
> name not provided" );
> Sitecore.Data.Events.ItemCreatedEventArgs cArgs =
> Sitecore.Events.Event.ExtractParameter(args, 0) as
> Sitecore.Data.Events.ItemCreatedEventArgs;
>
> if (cArgs != null && cArgs.Item != null &&
> cArgs.Item.Fields[FieldName] != null &&
> String.IsNullOrEmpty(cArgs.Item.Fields[FieldName].Value))
> {
> cArgs.Item.Editing.BeginEdit();
> cArgs.Item.Fields[FieldName].Value =
> Sitecore.DateUtil.IsoNow;
> cArgs.Item.Editing.EndEdit();
> }
> }
> }
> }
>