In essence, the problem I face is this: two groups of users need to access the same document library. One group submits documents plus some metadata, the other vets the documents and edits the metadata, and eventually "approves" the whole lot. Some of the metadata is "approver-only".

I need to have a distinct edit form for each group. Is there some way that I can use, say, an ItemAdding event receiver to control who sees which form?

If not, is there an alternative I can use without a huge investment in time and effort?

2 Answers 2


I recommend a simple approach. Use this guidance to change EditForm for the list: Create Custom New Edit and Display form for sharepoint list

In newly created application page create two panels (asp:panel should do). One panel for one group, and another panel for second group. Both panels should be attributed as hidden. In Page_Load event add an if statement where you test current user's group membership and simply show the appropriate panel.

  • The edit form appears as a modal dialog. Does that make a difference?
    – Josh Korn
    Dec 2, 2014 at 18:40
  • No difference at all. I had an identical request from my customers and this is the way I implemented it. Dec 2, 2014 at 20:41

Alternatively, you can create a custom ListFieldIterator and set field visibility and editability via Reflection dynamaically (for example, based on the user's role) as described in this post. You can download the complete sample from here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.