Archive for January, 2008

If you are attempting to convert your existing Asp.net web application to an AJAX Enabled Asp.net web application, you most probably followed down the path of merging your existing web.config with one that is provided by a new Asp.net AJAX Enabled web application’s web.config.

This worked fine for me until I tried adding a AutoCompleteExtender and needed to declare a method in code behind with the attributes

[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]

That’s when I came across the following error:

The type or namespace name ‘ScriptManager’ does not exist in the namespace ‘System.Web.UI’ (are you missing an assembly reference?)

Having merged the web.config files I assumed I should not be getting the error. However, what I had failed to do was merge the .csproj files. Apparently some references are in the .csproj file. Mainly, the reference to the System.Web.Extensions.

Adding a reference to the System.Web.Extensions should fix the problem.

Recently I had to work with the ModalPopupExtender that comes with the AjaxControlToolkit. I’ve worked with it before, but this time it posed a couple of problems (that were caused not because of the toolkit, but rather other things).

Without specifying the “X” and “Y” attributes of the ModalPopUpExtender(MPE) it is supposed to, by default, render at the center of the screen. Sometimes this doesn’t happen. The solution to getting it to render at the center of the screen is adding the following doctype to your page:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

Even then, my page didn’t seem to display the popup right. Its only later that I discovered that I was using Response.flush on the page to display a “Loading…” screen. This causes the html used for the “Loading…” screen to be the first thing on the page.

Since the DOCTYPE is now forced down the page, the rest of the page does not render as per the specified DOCTYPE. This causes the MDE to render at some other position on the screen (other than the center).

To fix this, Response.Write and Flush your DOCTYPE tag first, so it becomes the first line on the page.