I have an Item in sitecore lets say "AddressItem
" that has some children. I want to edit a Field "IsMain" in all the child items.
I am using Foreach
loop. Is there some better way to achieve this.
foreach (Sitecore.Data.Items.Item child in AddressItem.Children)
{
using (new SecurityDisabler())
{
child.Editing.BeginEdit();
child.Fields["IsMain"].Value = "0";
child.Editing.EndEdit();
}
}
Its probably faster to set the IsMain fields standard value to 0 then reset all items to that standard value. There is no function for that out of the box but the below code will do it.
This function is a little more robust then your requirement but its the code I have as is.
First you need a user with the correct permissions to replace: ElevatedUserAccount
Next get the list of items you would like to reset the values for then create a list of fields you wish to reset. In your case AddressItem.Children and IsMain.
Finally pass them into the below methods.