I ran into this issue today - specifically ActiveX not being recognized as available so Datasheet view didn't work on a list. (Edit 2014-07-10: This works to fix SharePoint 2013 pre-SP1 as well e. g. not being able to work with web parts in edit mode.)
There are two fixes to this on the client side, but they are both very big hammers:
You can add the site to the Compatibility List in IE ([gear] -> Compatibility View Settings
-> Enter URL, Add
). This is a big hammer because it actually applies to the entire DNS domain, which if SharePoint is one of many things in the DNS domain, is really bad. So this was no good for me.
You can add the site to the Intranet
zone and have the Display Intranet Sites in Compability View
checkbox turned on (also in Compatibility View Settings
). This impacts all sites in the zone, which will hurt sites in that zone that are not broken on IE11. So this was also no good for me.
I tried the different ASP.NET updates to update ASP.NET browser detection but that was all up to date, so that didn't help.
However, as a hunch, I decided that somewhere SharePoint was doing "User Agent Sniffing" - the timeframe of the code was right for that, and a very, very large number of IE11 compatibility issues come down to user agent sniffing. The user agent was changed on purpose for IE11 (ref: http://blogs.msdn.com/b/ieinternals/archive/2013/09/21/internet-explorer-11-user-agent-string-ua-string-sniffing-compatibility-with-gecko-webkit.aspx).
Since I can't work out where it's happening, and the whole web site on the server is dedicated to SharePoint 2010, I decided I would use a medium-sized hack-shaped hammer to fix this. The hack is to change the user agent being reported to SharePoint to make IE 11+ look like IE 8.0.
Steps you should follow to reproduce:
Install the URL Rewrite 2.0 module on the server if it's not already installed. (Current URL: http://www.iis.net/downloads/microsoft/url-rewrite but it's very easy to find).
Open the IIS Manager (the current one, not the IIS 6.0 legacy one).
Select the web site under Connections
.
In the Features View
IIS
section, open URL Rewrite
.
Under Actions
Manage Server Variables
select View Server Variables...
.
Under Actions
select Add...
.
When prompted with Add Server Variable
, enter HTTP_USER_AGENT
as the Server variable name:
and press OK
.
Under Actions
select Back to Rules
.
You are now back at the main URL Rewrite
context. Under Actions
select Add Rule(s)...
.
When prompted for Add Rule(s)
select Blank rule
under Inbound rules
and press OK
.
Create the rule as follows:
That's it, done. This worked for me - the datasheet view immediately worked correctly without my browser set for compatibility mode for the page beyond the automatic "act like IE 8" that seemed to happen without me doing anything.
You could conceivably also a rewrite rule to add the IE=8
rendering meta tag into all ASPX responses as well - I haven't done that myself so I'm not documenting details here but it shouldn't be too hard to figure out from what I have here.
(edit 2014-07-10: added small missing step)