November Happy Hour will be moved to Thursday December 5th.
November Happy Hour will be moved to Thursday December 5th.
Hi,
In order to hide the ID property from edit mode, there are two things you need to do.
First, to hide in from the create/edit template, simply add the ScaffoldColumn(false) attribute as you've already did.
Second, to hide it from the table, you'll need to add a custom editor descriptor and tell the editor to exclude the ID column. Here's an example:
public class MyCustomCollectionEditorDescriptor : CollectionEditorDescriptor<Question> { public override void ModifyMetadata(ExtendedMetadata metadata, IEnumerable<Attribute> attributes) { this.GridDefinition.ExcludedColumns.Add(nameof(Question.Id)); base.ModifyMetadata(metadata, attributes); } }
Hope that helps!
As for creating a new ID when creating a new object, you could simply add a backing field and assign a new value in the getter:
private string _id; [ScaffoldColumn(false)] public string Id { get { if (string.IsNullOrEmpty(_id)) _id = Guid.NewGuid().ToString(); return _id; } set { _id = value; } }
Thank you Per Magne,
This is exactly what I'm looking for and this codes work great :)
I can´t get this to work unfortunately. Not sure if I´m missing something or if it´s no longer working for later version of CMS (we´re running 10.9.0).
I have a page type called StartLandingPage. There I have a property of type PropertyList, it looks like this:
[EditorDescriptor(EditorDescriptorType = typeof(CollectionEditorDescriptor<IntegrationToolModel>))] public virtual IList<IntegrationToolModel> ToolIntegrationTabs { get; set; }
I then have an EditorDescriptor class that looks like this:
public class IntegrationToolEditorDescriptor : CollectionEditorDescriptor<IntegrationToolModel> { public override void ModifyMetadata(ExtendedMetadata metadata, IEnumerable<Attribute> attributes) { GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.ApiUrl)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.HideOnDesktop)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.HideOnMobile)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.FormResult)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.CountryCode)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.DestinationUrl)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.ResultPage)); base.ModifyMetadata(metadata, attributes); } }
Where I specify a bunch of properties of IntegrationToolModel object that I don´t want to show in the table view. But it´s not working, they are not hidden from the view.
What am I missing or doing wrong?
I know this is an older post, but just in case someone is having the same issue like Petra, you need to:
The updated code would look like this:
public virtual IList<IntegrationToolModel> ToolIntegrationTabs { get; set; } [EditorDescriptorRegistration(TargetType = typeof(IList<IntegrationToolModel>))] public class IntegrationToolEditorDescriptor : CollectionEditorDescriptor<IntegrationToolModel> { public override void ModifyMetadata(ExtendedMetadata metadata, IEnumerable<Attribute> attributes) { GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.ApiUrl)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.HideOnDesktop)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.HideOnMobile)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.FormResult)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.CountryCode)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.DestinationUrl)); GridDefinition.ExcludedColumns.Add(nameof(IntegrationToolModel.ResultPage)); base.ModifyMetadata(metadata, attributes); } }
Hi guys,
Since EPiServer 9, they support PropertyList in model, I wonder how I can hide some property from table?
In example, there are QuestionListPage and question class, I implement code like below. Now, I want to hide Id property in Question class from Editmode (from both display table and create/edit dialog). How can I hide it?
I also try to add [ScaffoldColumn(false)] or [Ignore] on top of Id property but Id can only hide in create/edit dialog, not hide in displaytable.
Another question is how can I create new GUID string value and add to Id when a question has been created?
Thanks,
Linh