- We are trying to do Event Management module to be part of SharePoint multilingual publishing website by capitalizing on the capabilities of SharePoint calendar.
- The event as a business entity has a lot of fields other than the default SharePoint event and those additional fields have some business logic behind them.
- The user can edit specific occurrence of the event or edit the whole series.
- Event have related business entities like attendees, volunteers, donors
- The project is a SharePoint development using VS2010 so we can move the site from testing to staging then to production easily.
- Create content type called “activity” inherits from SharePoint “Event” content type
- Create list instance called “activities” using SharePoint calendar template.
- Add the activity content type to the SharePoint calendar
- Create custom create event page
- Our first approach was to have application page which have it is own controls and one of the controls is the recurrence data control but we wasn’t able to figure out how to use that control
- Second approach was to have application page where we have our own UI controls then we generate XML to be saved inside recurrence field but we wasn’t able to find documentation for that field.
- Third approach
- Build custom new form through SharePoint designer then import this into visual studio SharePoint project as a module
- Create class that inherits from web part page
- Bind the imported new form page to use the class created in the previous step
- Issue with this approach is that we can’t access the controls inside the page to do custom logic based on selected values i.e when user select value inside dropdownlist this will show and hide some other sections inside the page
- We are questioning our approach . Is using SharePoint calendar and extending on it is the right way to implement such requirements ?
- If yes what is the right approach to have a page where we can control the UI of that page as well as having the flexibility to bind that page to a class (code behind file) so we can implement custom business logic on fields ?