Seamless inline text editing with ASP.NET AJAX

AJAX, ASP.NET, JavaScript, Performance, UI By Dave Ward on August 23rd, 2007

Inline text editing animationThis is a technique that I really like. It’s excellently suited to intranet sites and administrative interfaces, where your users are typically familiar enough with the application to know which text they can click to edit. It’s actually very easy to implement, with a small amount of JavaScript.

Click here to continue reading this entry »

Updated your web.config, but Sys is still undefined?

AJAX, ASP.NET, JavaScript By Dave Ward on August 16th, 2007

Sys is not defined error message

If you Google the error you’ll find a lot of results about updating your web.config to enable ASP.NET AJAX (which is a necessary step), but what if you’ve already done that? Not only will your search be an exercise in frustration, but it will lead you down the wrong path completely. Maybe I can help.

Click here to continue reading this entry »

Robust ASP.NET control referencing in JavaScript

AJAX, ASP.NET By Dave Ward on August 8th, 2007

As you may know, ASP.NET controls often render with client-side IDs different than what’s declared in your aspx code. Especially when they’re nested in other controls (Tabs, Wizard, GridView, etc). When working with them on the server side this isn’t an issue, but tends to throw a monkey wrench into the gears of client-side development. Here’s an example:

Click here to continue reading this entry »

Highslide JS .NET (v0.4)

AJAX, ASP.NET, Highslide, UI By Dave Ward on August 3rd, 2007

Embedded outline graphics!

Finally, the control does what I really wanted it to from the start: It completely encapsulates Highslide JS into a single file. You no longer need a graphics/outlines directory with external outline images. Absolutely everything you need is embedded in the control’s .DLL.

If you’re upgrading from a previous version, drop the GraphicsPath property from your HighslideManager control and feel free to delete the outlines directory from your site.

As always, the latest version is available on the Highslide JS .NET download page.

Simplify ASP.NET AJAX client-side initialization

AJAX, ASP.NET, UI By Dave Ward on August 1st, 2007

I recently found myself needing to perform a bit of client-side page initialization, both on initial page load and when partial postbacks completed. I muddled through by using window.OnLoad() for the initial page load and an EndRequest handler for partial postbacks. It worked, but I wasn’t very happy with the kludgey nature of it.

On an unrelated ASP.NET forums thread around the same time, Steve Marx pointed out to me that the AJAX framework automatically wires up any client-side function named pageLoad() as an Application.Load handler. It’s actually in the docs, if you dig for it:

To handle the load and unload events of the Application object, you do not have to explicitly bind a handler to the event. Instead, you can create functions that use the reserved names pageLoad and pageUnload.

Click here to continue reading this entry »

Get Yahoo’s HTTP performance analysis tool

AJAX, ASP.NET, Performance By Dave Ward on July 25th, 2007

YSlow, Yahoo’s previously internal-only HTTP profiling tool, has been released to the public. It extends FireBug to analyze a page and provide an optimization checklist.

After experimenting with it for a bit today, I think it will quickly become as integral to my performance tuning as FireBug itself.

Get it here: http://developer.yahoo.com/yslow/

Display data updates in real-time with AJAX

AJAX, ASP.NET, Performance, UI By Dave Ward on July 25th, 2007

Example image of Digg Spy.

I’ve recently noticed the real-time “spy” feature popping up on more and more sites. Though it’s often a huge time waster, I can’t help but love the feature. It’s a great example of AJAX leveraged to do what it does best. It struck me that an ASP.NET AJAX implementation would be an excellent use of page methods for efficiency and __doPostBack() to trigger an UpdatePanel refresh. So, I decided to put together a proof of concept, using the ASP.NET AJAX framework.

To create a fully functional example, several things need to be done:

  • Choose a data source to “spy” on.
  • Build an interface to add rows, for testing.
  • Display that data in a row-based format.
  • Create a method to find the most recent row of data.
  • Use that method to asynchronously monitor row updates.
  • Refresh stale data when additions are detected.

Click here to continue reading this entry »

How to improve ASP.NET AJAX error handling

AJAX, ASP.NET, CSS, UI By Dave Ward on July 18th, 2007

AJAX error message on the ASP.NET forums

If you’ve done much ASP.NET AJAX development, you’re no doubt familiar with JavaScript alert errors similar to the one pictured above. This particular one occurs on the official ASP.NET forums in FireFox, if you try to navigate away from viewing a user profile before the Recommended Reading panels asynchronously load.

Not only is the error message of “…” completely meaningless, but it blocks your intended navigation away from the page until you’ve dismissed the alert window. Hopefully, someone at Telligent will read this, because the ASP.NET AJAX framework gives us an easy way to replace the annoying JavaScript alerts and vastly improve the usability of our applications.

Click here to continue reading this entry »

Easily refresh an UpdatePanel, using JavaScript

AJAX, ASP.NET, JavaScript, UI By Dave Ward on July 13th, 2007

I’ve noticed a lot of discussion lately regarding methods to refresh an UpdatePanel via client script. This is very easy on the server side, of course. You can just call UpdatePanel.Update(). However, on the client side, the most common solutions I’ve been seeing just don’t feel right.

Many will advise you to use a hidden button control inside the UpdatePanel, manipulated via button.click(), to trigger a partial postback of the UpdatePanel. While it does work, I never have been able to get past the kludgey nature of that solution.

Click here to continue reading this entry »

Why ASP.NET AJAX UpdatePanels are dangerous

AJAX, ASP.NET, Performance By Dave Ward on July 11th, 2007

If you’re like me, it’s hard to resist the lure of tossing a half dozen UpdatePanels on every page and reveling in AJAX goodness. The UpdatePanel makes AJAX trivially easy for anyone to implement, even without knowledge of what’s actually going on behind the scenes.

Unfortunately, that very lack of transparency regarding the mechanics of the client/server exchange makes it all too easy to shoot yourself (or your application) in the foot. Let me give you an example that you’re probably familiar with by now, and thoroughly sick of seeing:

Click here to continue reading this entry »