Switching content types of an item doesn’t lose field values

I was asked a question the other day that at first glance seems to be a really simple question – but yet I didn’t immediately know the answer to it. Having got the answer I think it’s worth sharing. The question was:

“If a list item has its content type changed does it lose the field values if the fields are not in the new content type? i.e. will they still be there when or if the content type is changed back?”

The good news to this question is yes they do!

Here’s a (contrived) example – say you have a calendar list with a custom content called Work Event and Social Event. Say, Work Event has a field for Office Location.

Event Content Types

We add an event of type Work Event – and then change it to Social Event. Looking at the properties for the item we see that the Office Location field is no longer there.

Work Event Properties

Social Event Properties

However, switching the content type back and viewing the properties we can see that the value for the Office field has been remembered!

Work Event Properties Updated

[Thinking about this I suppose it’s obvious really. The content type is simply another value on the field – and the field values are what are available with the columns on the list.]

share and enjoy
  • Print
  • Twitter
  • Digg
  • del.icio.us
  • StumbleUpon
  • Yahoo! Buzz
  • Google Bookmarks
  • Facebook

2 comments to Switching content types of an item doesn’t lose field values

  • Kevin James

    Does the original question posses apply to publishing content types based on the page system content type and if so, how? Thanks

    • Hi keven – sorry for the late follow-up. I believe that this does apply to page content types – for example, if you have a news article page with a byline field and then you switch and switch back – the byline value won’t be lost.

      Cheers,

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>