New Atlas CTP Posted (now includes updatepanel support in dynamic controls)

Last week we released the June CTP build of Atlas.  You can download it now from the http://atlas.asp.net site.

In addition to bug-fixes, the big new feature provided with this Atlas release is support for dynamically adding UpdatePanel controls within an ASP.NET page.  What this means is that you can now embed UpdatePanels within DataLists, within WebParts, within any template of a control, and within other dynamically created composite controls.  This greatly expands the places that UpdatePanels can easily be used, and enables a ton of new scenarios.

<asp:DataList runat="server">
  <ItemTemplate>
    <asp:UpdatePanel runat="server">
      ...

    </asp:UpdatePanel>
  </ItemTemplate>
</asp:DataList>

Control developers can also now use UpdatePanels when building composite controls.  Nikhil has a nice post that describes how a control developer can use updatepanels within composite controls to enable Ajax scenarios within portions of a control.  You can read his post on how to-do this here.

Three new controls were also added to the Atlas Control Toolkit last week.  These include a nice "Accordian" control to enable collapsable multi-regions, a "NumericUpDown" control to easily increment/decrement numeric values, and a "ResizableControl" to enable user resizing of any control element.  You can download the source code to these controls and start using them now here.  Note that the current download as of this weekend is still using the April CTP of Atlas -- the Atlas Control Toolkit team will be updating the drop to use the June CTP later this week.

For additional information on Atlas also make sure to checkout this recent Atlas resources list I posted here.

Hope this helps,

Scott

 

33 Comments

  • Hi Scott,
    Thanks for this post.
    In response to your post "Efficient Data Paging with the ASP.NET 2.0 DataList Control and ObjectDataSource": I have used your sample in my own application, and then extended it with the Atlas UpdatePanel to add Ajax UI paging support. Obviously, to use the partial rendering feature of the update panel, the navigation controls (prev/next etc.) need to perform a POST instead of a regular GET.
    I think this introduces a problem when you are trying to make the web application accessible to search engines. I’m not sure if they will actually follow the prev/next links, let alone understand the response that comes back as a result of the partial rendering. Do you have any experience or comments on that?
    Good to see you at the Dutch DevDays back in March by the way. Great talk on the Atlas stuff.
    Thanks for any comments

  • Scott,
    Atlas is great! I really appreciate the effort that you guys are putting into making Ajax development seemless.
    There's a problem with the PopupBehavior in which it makes IE show a security prompt when running under SSL. &nbsp;The fix is not to use the iframe.location="about:blank" but I see it has not been fixed as of this drop. This is critical as the AutoComplete extender also relies on the PopupBehaviour. &nbsp;Since we can't recompile Atlas, it would be great if you guys addressed that issue. &nbsp;

  • ... and it still doesn't work in Opera, making it totally useless to developers who are serious about cross-browser compatability (which should be every developer). If complex Ajax site like Google Maps can work in Opera, why can't Microsoft make the effort with Atlas? Unfortunately, I think we all know the answer to that.

  • I have seen the complaints/requests about the "not being able to create Update Panel on the fly", but i question what is gained in the example code posted above (DataList with an UpdatePanel inside the &lt;ItemTemplate&gt;) over just having the DataList inside the UpdatePanel?

  • Hi Scott
    We are using the DataGrid's RenderControl to export the grid to Excel. However, with the grid encapsulated within an UpdatePanel it does not work (give 'unknown error' with latest Atlas release). Any workaround please?

  • Does the new CTP have a smaller framework size than the 450k js file needed in the April CTP ?

    This big size for the framework is a substantial drawback to to the Atlas framework

  • Is there anyway to call a method inside a dll directly with Atlas?
    I can do that with ajax.net , but I am migrating to atlas...
    Or do I have to put a method in the page just to call the method inside the dll?(with PageMethods)

  • Hi Omar,

    When running in release mode Atlas compresses the .js file down before sending it to the client. The total size for the Atlas JS when compressed is about 45k (and this is then cached forever on the client).

    The August CTP of Atlas will be doing some refactoring of code, and will split the Atlas libraries out into separate files better. This will decrease this size even more (since you'll only need to transmit the functionality you need).

    Hope this helps,

    Scott

  • Hi Rodrigo,

    I think you could create a handler to register the webmethod for your class (without needing to create a page or web-service).

    Alternatively, you can have a web-service that exposes webmethods and then bind to that.

    Hope this helps,

    Scott

  • Hi Johan,

    My guess as to what is happening in your excel export case is that you are trying to export the excel data to an Ajax callback -- which is what is causing the failure.

    I believe an Atlas CTP later this summer will be adding support for controlling whether a specific request returns a regular html response or an Ajax update -- which would be one way to fix it. Alternatively, you could have another button on the page (outside of the UpdatePanel) that you don't associate a trigger with. This would allow you to export the grid to excel when this is clicked.

    Hope this helps,

    Scott

  • Hi Stephen,

    The nice thing about using an updatepanel within the itemtemplate of a datalist is that it means you can now ajax enable a single row of the datalist -- which means you don't have to update all of them on a callback. Previously you'd need to update everything within the datalist.

    Hope this helps,

    Scott

  • Hi Dan,

    Right now better Safari support is the top feature on our list right now (we have support for most of Atlas with it today - except for UpdatePanels, which we are adding with the next CTP).

    It is actually a ton of work enabling individual browsers. Simple things work across all of them -- but javascript timings and behaviors are subtly different in almost all of them. Building a general purpose Ajax framework like Atlas to work seamlessly in all of them takes awhile -- which is why richer browser support beyond FireFox and IE isn't just automatic yet. But it is something we are working on.

    Hope this helps,

    Scott

  • Hi Eduardo,

    Can you send me email with a little more detail about the specific SSL issue? I can then loop you in with the devs working on the PopupControl feature to see how we can get it fixed.

    Thanks,

    Scott

  • Hi JP,

    One challange that Ajax in general has is the degree of support you get from search engines with it. Since search engines don't execute javascript -- they can't really get at the data pulled from call-backs.

    My guess is that search engines will be refining the ways they access sites for data over the next few months (since more and more sites are now Ajax enabled). My hope is that they will support some pattern that will allow developers to easily expose the information they want in a browser friendly way.

    Hope this helps,

    Scott

    P.S. Separate from this, we are also looking to add support for bookmarking pages and handling back/forward navigation with Atlas. This will solve the problem you describe for end-users.

  • Hi Scott. Congratulations for this excelent work. Quick question: Has this June CTP a Go Live license? If it has it, has it any time limitation?

  • Hi Julio,

    This June CTP release also has a go-live license. There are no restrictions - other than the caveat that it is still unreleased product and so is subject to changes and still has some bugs.

    Hope this helps,

    Scott

  • Hi Tracey,

    Are you using the June CTP release of Atlas? I know there were issues with templates in prior releases, but with the June release I believe the scenario above should work. Send me mail if you have a specific sample that you can isolate the problem with.

    Thanks,

    Scott

  • Yes it helps. Thanks a lot Scott.

  • Scott:

    Thank you for your post on dynamically embedding UpdatePanels in Atlas. Can each of these UpdatePanels have their own UpdateProgress controls (nearby) so that the user recieves activity feedback close to the region where the update takes place?

    Thanks, JG

  • Hi Greek,

    You can't do that yet with this CTP -- but it is on the feature list for the future and will be enabled.

    Thanks,

    Scott

  • Scott:

    Would there be a way of manually approaching the functionality of multiple update progress controls by perhaps placing an activity indicator image within an update progress panel and then making it visible at the beginning of an event and invisible at the end of the event?

    Thanks, John

  • Fantastic post, I have been adding the UpdatePanel to all my controls

  • Hi John,

    You could probably fake it out somehow like that. We are also then looking to make this a built-in feature in the future (since we've had a lot of requests for it).

    Thanks,

    Scott

  • Hi Scott
    I have downloaded the new release to try and solve the issue of not being able to use dynamic web parts. Everything works fine until i edit the page and try to remove the web part. I receive the following error. Assertion Failed:Could not find an HTML element with ID"XYZ UpdateProgress".

    I have made no changes to my control, do i need to do anything special to get this to work?
    Thanks in advance
    Elise

    Here is my control code:















  • Hi Elise,

    Could you .zip up and send me (scottgu@microsoft.com) a simple example showing the problem you are having?

    Thanks,

    Scott

  • trying to convert 1.1 app to 2.0.
    added update panel to the page and moved a custom datagrid into that. when I do paging it gives 'Unknown Error'. not particularly helpful message. without updatepanel it works just fine
    Anyway to debug. what could be causing it
    using the latest CTP.

  • Hi Lee,

    It is hard to know what might be causing it because it is a custom datagrid. It could be caused by some Javascript that is conflicting with the Atlas JS files.

    Thanks,

    Scott

  • Hello again Scott!

    Thanks for your help on previous questions.

    I'm using the June CTP; I have a page that contains a placeholder. I add a user control to that control on the Click event of a button on the page:


    OnClick event:
    tool = (TestTool) LoadControl("~/TestTool.ascx");
    tool.ID = "myTool";
    PlaceHolder1.Controls.Add(tool);

    User Control:

    LinkButton


    The user control contains 1 UpdatePanel. The UpdatePanel contains a Time textbox and a GetTime button (with an event that puts the current time into the textbox):

    When I click the GetTime button, an Unknown Error occurs.

    If I add the GetTime control on the OnInit event of the top level page, the method works; but since I want to add the controls dynamically, I'm not sure how to keep the current control (here: GetTime) available on each post back.


  • Hi Greek,

    If you can send me a .zip file with a simple repro via email I could take a look.

    Thanks,

    Scott

  • I real all the comments and I would STRONGLY agree with one thing in Atlas that makes this IE nice framework unusable - cross-browser support. If Atlas will not be working with support for FF/IE/Opera/Safari then it makes no sence and we must use Java + Google framework or some other extensions as scriptaculous, etc. So if MS wants to line up with Google then work on cross-browser suport and don't add new features. Otherwise it's useless.
    My 2cc

  • Hi Jan,

    Atlas does fully support FireFox today, and all but one feature works in Safari. This one feature will have Safari support in the next CTP drop this fall. We are definitely committed to cross browser support.

    Hope this helps,

    Scott

  • Scott, I recently started working on project where I need to have a popupcontrol to be used within a gridview. The panel consists of a dropdown list, a textbox and a save and cancel button. The popcontrol fires when a user clicks in a template field (textbox) in the gridview. The panel displays fine, but when the user clicks the save or cancel button, a message appears that says "unknown error". I don't have this problem when the controls stand alone outside of the gridview. Any thoughts on how I might get this to work? I have a fast moving project with a very aggressive deadline that requires that we have this functionality.

  • How to update DataList when you call querystring

Comments have been disabled for this content.