There is a saying that goes “when you have a hammer, everything looks like a nail”. In the case of SharePoint lists sometimes they get carried away fromĀ their designed nature and used to store massive data sets. The more columns loaded into a list, the slower it typically performs. This is especially the case for ‘lookup’ columns which may query lists other lists (or even itself) and return a massive data set that needs to be rendered as user controls.
Once traveled down this road the only preventative maintenance you can do is clean up and move your data to another location (relational database) or create some custom forms for your users to access. These forms can display a subset of the lists fields so that a user may be access something more performant for their purposes. This is a very simple task when you realize how to do it, screen shots will explain this quite quickly:
Be careful with the original forms, deleting or drastically changing a form could result in your having to recreate the list if you don’t keep proper backups.
Paste the copied form, this will create a new form that you can name for your purposes.
Edit the new form you created.
You need to modify the IsVisible property on the <WebPartPages:WebPartZone>. When this is set to false the default control will not render, you can then create you own control. This is also a preparatory measure, if your control for some reason breaks you can restore the standard functionality by toggling the IsVisible property.
Now you want to create a space for a new custom list form, you can see my comments in the screen shot. The space needs to be after the closing </WebPartPages:WebPartZone>. After you cleared a space use the insert menu option to create your custom control.
This next screen shot is something you would hope not to see, however the way this appears to work requires it to make a request to the actual SharePoint list to get the properties for your custom control. If this happens I find that you can just try, try again until the server has a free moment to allow your request to go through (I will probably post an article in the future on making sure you have the correct amount of worker processor for your IIS app pool, as this can be a major performance issue in large environments).
When this request actually does succeed you should be rewarded with a whole bunch of new controls that represent the columns in your SharePoint list. From here you can work on displaying/hiding the specific columns that you want the customer to see.





