Skip to main content
 
Go Search
Home
Categories
Bloggers
Hidden Fields... I don't think so !!
By: Amol Ajgaonkar | Posted: December 21, 2008 at 11:04 PM

I don't know how or why but sometimes the fields in a content type can get hidden. And you wont get an option of un-hiding the field using the UI. Actually if you try and un-hide the field using the object model, it wont let you. The CanToggleHidden property will be false. And the object model does not allow you to reset this property.

There is a way to reset this property.

The following code uses reflection to invoke the right method and reset the property. After the code executes the field (SPField) can be be made visible.

   1: //field is an object of the class SPField.
   2: Type type = field.GetType();
   3: MethodInfo mi = type.GetMethod("SetFieldBoolValue", BindingFlags.NonPublic | BindingFlags.Instance);
   4: //Invoke the SetFieldBoolValue on the property CanToggleHidden
   5: mi.Invoke(field, new object[] { "CanToggleHidden", true });
   6: //Now the field's Hidden property can be toggled.
   7: field.Hidden = false;
   8: //Update the field.
   9: field.Update(true);

Similarly sometimes there could be a requirement to toggle the CanBeDeleted property on a SPField object. If you cannot do it using the OB then the code below can be used.

   1: // field is an object of SPField class.
   2: if (!field.CanBeDeleted)
   3: {
   4:     Type type = field.GetType();
   5:     MethodInfo mi = type.GetMethod("SetFieldBoolValue", BindingFlags.NonPublic | BindingFlags.Instance);
   6:     //Invoke the SetFieldBoolValue on CanBeDeleted property.
   7:     mi.Invoke(field, new object[] { "CanBeDeleted", true });
   8:     // Now the field can be deleted.
   9: }                                  
  10: field.Delete();
Share this post :

  Comments   Add Comment   Share It  
  Your Name:
  Your Email: **will not be displayed
  Comment Title:
* Comments:
  If you cannot read the code, please
click here to get a new one. You won't
lose your comments by doing so.
* Security Code:
   
  
  
* Your Name:
* Your Email: **will not be displayed
* Recipient's Email:
* Subject:
  If you cannot read the code, please
click here to get a new one. You won't
lose your comments by doing so.
* Security Code:
  
  
  
 

 About

 [more]

 ‭(Hidden)‬ Admin Links

 External Links

 Tag Cloud