+1  A: 

Surely this is caused by adaptive rendering, where ASP.Net emits html tailored for the browser?

http://aspnetresources.com/blog/adaptive_rendering.aspx

Chris Needham
I don't think adaptive rendering would cause a link button to render as a span.
Ady
Possibly if the link has no href?
Chris Needham
+1  A: 

In your code sample, the asp:LinkButton tag is incorrectly formed - there is a missing "<".

Chris Needham
There is also a quote missing for the text attribute. But these should all cause the compiler to fail.
Ady
Thats just a mistake in copying
nialljsmith
A: 

According to Microsof the LinkButton "Displays a hyperlink-style button control on a Web page.". As such I would not expect adaptive rendering to change this from a HyperLink to a span. I have never seen this behaviour.

If this is truly what is happening then you may want to check a couple of thigs:

  1. Are there any DHTML or JS loading that changes the HTML after the page has published?
  2. Are there any assemblies / server controls installed that override the default behaviour a link button?
  3. Try a blank soloution with the bound link button and try to reproduce, then back track by adding asseblies & controls to the project to determine what is causing the issue.

Unfortunatly there is not enough information in your question from your code, and screen shots to give you a definative answer at this stage.

Ady
+1  A: 

It looks like there are some other problems with your templates.

As Chris states in a comment "Possibly if the link has no href?"

Looking at the html that has been generated in Firefox, there's also no ID on the containing div - while there is in IE.

Bear in mind that using Firebug to look at the source in Firefox, and actually looking at the source (right-click|View Page Source) are two different things - Firebug will display the source as parsed and processed by the browser, with any additions that JavaScript or the Browser engine have added/changed - Using the View Page Source will show you the actual source returned from the server before any processing happened - is that code correct/the same?

BrowserCaps used to make a right mess of all sorts of controls in a 1.x world - however they were updated to support Firefox etc with ASP.NET 2.0, so they shouldn't be affecting things here.

Zhaph - Ben Duguid
Of course if this is an AJAX page where the controls are created after the first page request then viewing the source in this method may not be possible.
Ady
True, but then there would be other error reports in the console section - but at the end of the day there's no "AJAX" tag assigned to this, and we have an ItemTemplate snippet.
Zhaph - Ben Duguid
+1  A: 

I am very emabarrased to admit that I have made the most absent minded of blunders

Jay S very rightly pointed out that I should make sure I'm looking at the correct instance of the code. Some of the links on the local version are pointing to the Dev version on the Dev Server. It is not up to date and actually has old code running there from before the product names were converted to links.

Apologies for wasting the collective brain energy and thank you all for your replies.

nialljsmith
Points to Jay! Oh wait....was just a comment.
Crescent Fresh
So often this is the case when you just can't figure why stuff won't work properly. As developers we get tied up in minute details then after a couple of hours realise we're looking at the wrong server or something!
Chris Needham