• Client login
  • Work for us

All the latest from the team...

Thursday, 14 February 2008

ASP.net ButtonClick events not fired when "Enter" is hit?

In Internet Ignorer (AKA Internet Explorer for you purists)... You know that browser by MICROSOFT? The same dudes who came up with ASP.net? You may have noticed that a form submittal event that is fired by the enter key doesn't call the form's _Click event.

This only happens with a single TextBox control for example the code below:


<form runat="server">
Name: <asp:TextBox runat="server" id="txtField" />
<asp:Button runat="server" Text="Go" />
</form>


Internet Ignorer does not pass the submit button's name/value pair in the post. Therefore the ASP.net engine can't determine what control fired the postback event and therefore can't fire the appropriate Click event.

To get round this simply add another TextBox control to your form for example:


<form runat="server">
Name: <asp:TextBox runat="server" id="txtField" />
<asp:Button runat="server" Text="Go" />
</form>
>asp:TextBox runat="server" style="display:none;" /<


For some strange reason INternet Ignorer now decides to send the name value pairs along to the post event.

Yet ANOTHER workaround for a Microsoft product... When using a Microsoft technology... Does it get worse than this? :-)

Labels: , , , , , , , ,

Tuesday, 15 January 2008

ASP and 30x redirects for SEO

One of the common things I come across when building websites is the lack of understanding for SEO when you are porting to a new site.

One recent site I've just finished meant porting a site from classic ASP 3.0 to ASP.net and how to point redirects to the new pages to maintain the SEO rankings. Well the obvious answer is a 301 redirect. But how?

Well there are many ways on an IIS box but the basic way to point ASP (classic) pages is to have a global.asa AS WELL AS a global.asax. The global.asa will serve ASP (classic) and the global.asax will serve the ASP.net pages... Therefore we can simply put our redirect code into the global.asa and point our .asp files to their new .aspx conterparts...

If Request.ServerVariables("PATH_INFO")= "/default.asp" Then
If Request.ServerVariables("QUERY_STRING")="" Then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.mydomain.com/"
Else
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.mydomain.com/?" &
Request.ServerVariables("QUERY_STRING")
End If
End if


I've added the check for querystring variables in case you wanted to pass any tracking or like URL variables to your new page but you can customise to suit your needs.

Labels: , , , , ,

RSS feed ATOM feed Add to Technorati Favorites View Jon Harvey's profile on LinkedIn