The other the I got asked why the “Datasheet view” option was laking from “Create a new view”. It turned out to be a more troublesome way to find the solution than first expected.
First I checked the users rights on the site collection, but that really did not give any answers.
Secondly, I checked this on a virtual dev machine, with (more or less) the same configuration and features: No repro. Create datasheet view was available as it should be. So what could be the difference between these machines?
Thirdly, I compared site features and site collection features, but this neither give any findings.
OK, let’s see what happens in the ViewType.aspx which display this page:
fHideGridViewOption = ListViewWebPart.RestrictedTemplateType(spList) || !spList.DoesUserHavePermissions(SPBasePermissions.UseClientIntegration);
… and some more… but nothing really telling me why it might be hidden.
So I asked and looked for suggestions elsewhere: A lot of search hits and problem related to the DataSheet view is client integration, that was a dead end here. From one client I could reproduce the problem on one server and not on another. And the problem is not viewing the view.
Finally, I tried to open an existing datasheet view on the server with the problem. This gave the following error:
“The standard view of your list is being displayed because your site configuration does not support the Datasheet”
“Site configuration” – it should have said web application. Central Admin – application management – authentication providers – <your provider> – scroll to the bottom:
“Enable client Integration” was set to “NO”.
This was a setting long forgotten, since it is set to “YES” when you create a new web application in the GUI. However, one server had been set up using STSADM commands with the SharePoint PowerShell Deploy from Codeplex using EXTENDVS, so somehow I needed to compensate for this.
The easiest way is to call another stsadm command after the extendvs,
stsadm -o authentication
-url <URL name>
[-membershipprovider] <membership provider name>
[-rolemanager] <role manager name>
and set the –enableclientintegration flag.
Just another small annoying thing that take a little too long to figure out…