<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Hannes Preishuber : Ajax</title><link>http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx</link><description>Tags: Ajax</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>IE 8 simultaneous connections changed</title><link>http://weblogs.asp.net/hpreishuber/archive/2008/07/21/ie-8-simultaneous-connections-changed.aspx</link><pubDate>Mon, 21 Jul 2008 12:22:13 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6427013</guid><dc:creator>preishuber</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=6427013</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2008/07/21/ie-8-simultaneous-connections-changed.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Small note. The Internet Explorer 8 have increased the amount of connections to the same domain to 6. ( was before 2)&lt;/p&gt;  &lt;p&gt;Can have some effects in AJAX callbacks, like Web Service calls.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc304135(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/cc304135(VS.85).aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6427013" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>AJAX drag&amp; drop challenge: science fiction with web.preview</title><link>http://weblogs.asp.net/hpreishuber/archive/2008/01/30/ajax-drag-amp-drop-challenge-science-fiction-with-web-preview.aspx</link><pubDate>Wed, 30 Jan 2008 19:56:37 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5677724</guid><dc:creator>preishuber</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=5677724</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2008/01/30/ajax-drag-amp-drop-challenge-science-fiction-with-web-preview.aspx#comments</comments><description>&lt;p&gt;&lt;font size="2"&gt;Drag and drop is one of the missing features from the final &lt;/font&gt;&lt;a href="http://www.ppedv.de/schulung/kurse/ajaxAspNet.aspx"&gt;&lt;font size="2"&gt;ASP.NET 2.0 AJAX Extensions 1.0&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; (what a name). On my research work I figured out several ways to implement drag and drop and add &lt;/font&gt;&lt;a href="http://weblogs.asp.net/hpreishuber/archive/2008/01/27/ajax-drag-drop-challenge-new-with-profile-support.aspx"&gt;&lt;font size="2"&gt;profile support&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;My next sample uses the ASP.NET 3.5 Extensions Preview. Earlier builds were named ASP.NET AJAX Futures. Both includes a microsoft.web.preview.dll (version in this sample 1.2.61025). That sample works without additional jscript code.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;The idea comes from my visual studio which shows an extender which should be removed from toolkit some time ago. But it is here.&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/hpreishuber/WindowsLiveWriter/AJAXdragdropchallengesciencefict.preview_11E93/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="190" alt="image" src="http://weblogs.asp.net/blogs/hpreishuber/WindowsLiveWriter/AJAXdragdropchallengesciencefict.preview_11E93/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;It comes from installed 3.5 extensions.&lt;/p&gt; &lt;p&gt;After coping the microsoft.web.preview.dll into the local BIN directory of your website you have to add the tagPrefix in controls section of web.config.&lt;/p&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;&lt;font size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a31515"&gt;add&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;tagPrefix&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;aspPreview&lt;/font&gt;"&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;namespace&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;Microsoft.Web.Preview.UI&lt;/font&gt;"&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;assembly&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;Microsoft.Web.Preview&lt;/font&gt;"&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;/&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a31515"&gt;add&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;tagPrefix&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;aspPreview&lt;/font&gt;"&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;namespace&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;Microsoft.Web.Preview.UI.Controls&lt;/font&gt;"&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;assembly&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;Microsoft.Web.Preview&lt;/font&gt;"&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Then you can add the DragPanelExtender Control which points to a panel control using attribut targetControlID. The position of the dragged panel will be stored in profile information as a single string. The name must be set by profileproperty attribut. Internal it must store x and y position. The attribut profileserviceID points to a new servercontrol profileservice.&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;asp&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#a31515"&gt;ScriptManager&lt;/font&gt; &lt;font color="#ff0000"&gt;ID&lt;/font&gt;&lt;font color="#0000ff"&gt;="ScriptManager1"&lt;/font&gt; &lt;font color="#ff0000"&gt;runat&lt;/font&gt;&lt;font color="#0000ff"&gt;="server"&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;ProfileService&lt;/font&gt; &lt;font color="#ff0000"&gt;LoadProperties&lt;/font&gt;&lt;font color="#0000ff"&gt;="dragdropprofile.top,dragdropprofile.left"/&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;asp&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#a31515"&gt;ScriptManager&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;asp&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#a31515"&gt;Panel&lt;/font&gt; &lt;font color="#ff0000"&gt;ID&lt;/font&gt;&lt;font color="#0000ff"&gt;="Panel1"&lt;/font&gt; &lt;font color="#ff0000"&gt;runat&lt;/font&gt;&lt;font color="#0000ff"&gt;="server"&lt;/font&gt; &lt;font color="#ff0000"&gt;BorderColor&lt;/font&gt;&lt;font color="#0000ff"&gt;="#3333FF"&lt;/font&gt; &lt;font color="#ff0000"&gt;BorderWidth&lt;/font&gt;&lt;font color="#0000ff"&gt;="5px"&lt;/font&gt; &lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#ff0000"&gt;Width&lt;/font&gt;&lt;font color="#0000ff"&gt;="112px"&amp;gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;DragOverlay&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;br&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;extender&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;br&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;asp&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#a31515"&gt;Panel&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;aspPreview&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#a31515"&gt;DragOverlayExtender&lt;/font&gt; &lt;font color="#ff0000"&gt;ID&lt;/font&gt;&lt;font color="#0000ff"&gt;="Panel1_DragOverlayExtender"&lt;/font&gt; &lt;font color="#ff0000"&gt;runat&lt;/font&gt;&lt;font color="#0000ff"&gt;="server"&lt;/font&gt; &lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#ff0000"&gt;TargetControlID&lt;/font&gt;&lt;font color="#0000ff"&gt;="Panel1"&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font color="#ff0000"&gt;ProfileServiceID&lt;/font&gt;&lt;font color="#0000ff"&gt;="ProfileService1" &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#ff0000"&gt;ProfileProperty&lt;/font&gt;&lt;font color="#0000ff"&gt;="dragoverlaystring"&lt;/font&gt; &lt;font color="#0000ff"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;aspPreview&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#a31515"&gt;DragOverlayExtender&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;asppreview&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#a31515"&gt;profileservice&lt;/font&gt; &lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;font color="#0000ff"&gt;="ProfileService1"&lt;/font&gt; &lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#ff0000"&gt;runat&lt;/font&gt;&lt;font color="#0000ff"&gt;="server" &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#ff0000"&gt;AutoSave&lt;/font&gt;&lt;font color="#0000ff"&gt;="True"&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;asppreview&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#a31515"&gt;profileservice&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;Try it- The samples will store the new position of your panel also if you close the browser and reopen it. But- dont forget that is preview and can be changed by microsoft without any notice. Positive is that that function will be supported from microsoft. &lt;a href="http://www.asp.net/downloads/3.5-extensions/readme/"&gt;Documentation&lt;/a&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5677724" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>AJAX Drag &amp; Drop Challenge</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/12/22/ajax-drag-amp-drop-challenge.aspx</link><pubDate>Sat, 22 Dec 2007 18:52:13 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5488639</guid><dc:creator>preishuber</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=5488639</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/12/22/ajax-drag-amp-drop-challenge.aspx#comments</comments><description>&lt;p&gt;Drag and drop is typically feature from windows application. With Web application the user is loosing it. Missing Drag&amp;amp;Drop is one of the top ranked features for better usability.&lt;/p&gt;  &lt;p&gt;The new Web 2.0 styled applications are bringing Drag&amp;amp;Drop back. But it is quite complicated for developer to implement it. Drag and Drop happens on client side and must be coded by Jscript. For real web applications there must be some connection point between client and server. For instance&amp;#160; a web service can be used to transfer users selection data back to server. &lt;/p&gt;  &lt;p&gt;Developers need a framework for faster development. Microsoft offers ( at least) three AJAX drag&amp;amp;drop frameworks.&lt;/p&gt;  &lt;p&gt;Webparts - best used for Sharepoint&lt;/p&gt;  &lt;p&gt;DragDropManager- dropped with AJAX RTW - but still possible with microsoft.web.preview.dll&lt;/p&gt;  &lt;p&gt;DragDropManager from Toolkit &lt;/p&gt;  &lt;h1&gt;Ajax Control Toolkit Drag &amp;amp; Drop&lt;/h1&gt;  &lt;h1&gt;&amp;#160;&lt;/h1&gt;  &lt;p&gt;I have &lt;a href="http://weblogs.asp.net/hpreishuber/archive/2007/03/22/disaster-strategy-ajax-toolkit-on-codeplex-read-it.aspx"&gt;blogged my opinion&lt;/a&gt; about the toolkit some time ago. This time i worked out the possibility for Drag&amp;amp; Drop based on the toolkit. &lt;/p&gt;  &lt;p&gt;The Ajax control toolkit contains several control where two have drag and drop. The &lt;a href="http://asp.net/AJAX/AjaxControlToolkit/Samples/ReorderList/ReorderList.aspx"&gt;reorderd list&lt;/a&gt; is a nice sample to show what is possible in web.&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://asp.net/AJAX/AjaxControlToolkit/Samples/DragPanel/DragPanel.aspx"&gt;Dragpanel&lt;/a&gt; is a easy to use control to drag ASP.NET panels over the website. It follows the great Ajax extender pattern. In earlier editions of toolkit there was a very useful support for profile binding to store the location in userprofile. &lt;/p&gt;  &lt;p&gt;But the guys from .... (toolkit is hosted on codeplex and made by &amp;quot;community&amp;quot;) have forgotten to implement a DropPanelExtender.&lt;/p&gt;  &lt;p&gt;So you have to go into code and do it by yourself. &lt;/p&gt;  &lt;h1&gt;Drag&amp;amp; Drop Prototype&lt;/h1&gt;  &lt;p&gt;In my following sample I have several DIV's as drop destination. A asp.net Panel control is extended with a dragpanelextender.&lt;/p&gt; &lt;font size="2"&gt;   &lt;p&gt;&lt;/p&gt;   &lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;Panel&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Panel1&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;class&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;dragIcon&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;server&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Height&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;10px&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;    &lt;p&gt;&lt;/p&gt;   &lt;font color="#ff0000" size="2"&gt;Width&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;125px&amp;quot;&amp;gt;&lt;/font&gt;&lt;font size="2"&gt;hallo&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;Panel&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;   &lt;p&gt;&lt;/p&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;   &lt;p&gt;&amp;lt;&lt;/p&gt;   &lt;font color="#a31515" size="2"&gt;cc1&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;DragPanelExtender&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Panel1_DragPanelExtender&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;    &lt;p&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;   &lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;server&amp;quot; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DragHandleID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Panel1&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Enabled&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;TargetControlID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Panel1&amp;quot;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;   &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;   &lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;cc1&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;DragPanelExtender&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;  &lt;p&gt;The panel must extended by a drop event handler which must be done by Jscript. Take care that the script only can be executed when all elements from page are loaded.&lt;/p&gt; &lt;font size="2"&gt;   &lt;p&gt;$addHandler ($get(&lt;/p&gt;   &lt;font color="#a31515" size="2"&gt;'Panel1'&lt;/font&gt;&lt;font size="2"&gt;), &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;drop&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;, myDropFunction); &lt;/font&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;The dropfunction gets as parameter a object which have several necessary information in like the source element. But you dont know where user have dropped. The problem left is that you have to iterate through all possible drop destinations and find out if the position matches. The following code is a small but ugly sample which demonstrate the idea.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;The node which contains the panel will be moved in the DOM to the dropDIV. You can iterate later through the childcollection of each dropDIV and store the list of dropped items on the server.&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;font color="#0000ff" size="2"&gt;     &lt;p&gt;&amp;lt;&lt;/p&gt;     &lt;font color="#a31515" size="2"&gt;script&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;language&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=jscript&amp;gt;&lt;/font&gt;      &lt;p&gt;function&lt;/p&gt;     &lt;font size="2"&gt;&lt;font color="#000000"&gt; myDropFunction(a) {&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;     &lt;p&gt;for&lt;/p&gt;     &lt;font size="2"&gt;&lt;font color="#000000"&gt; (i = 1; i &amp;lt; 4; i++) &lt;/font&gt;&lt;/font&gt;      &lt;p&gt;{&lt;/p&gt;   &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;     &lt;p&gt;var&lt;/p&gt;     &lt;font color="#000000" size="2"&gt; myDIV=$get(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;dropDIV&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;+i)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;     &lt;p&gt;if&lt;/p&gt;     &lt;font size="2"&gt;&lt;font color="#000000"&gt;(isIn(a,topf))&lt;/font&gt;&lt;/font&gt;      &lt;p&gt;{&lt;/p&gt;   &lt;/font&gt;    &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;var&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; n1=document.getElementById(a.target.id);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;   &lt;font size="2"&gt;     &lt;p&gt;n1.parentNode.removeChild(n1);&lt;/p&gt;   &lt;/font&gt;&lt;font size="2"&gt;     &lt;p&gt;myDIV.appendChild(n1); &lt;/p&gt;      &lt;p&gt;}&lt;/p&gt;      &lt;p&gt;}&lt;/p&gt;   &lt;/font&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;The function isIn uses the position of cursor and size of div to compare if &amp;quot;drop&amp;quot; was in. That can have own business rules, what was in an what not ( like soccer).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;In one of my next postings I will show a more sexy completed example.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5488639" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>AJAX Control Toolkit from Codeplex is a Risk</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/03/22/disaster-strategy-ajax-toolkit-on-codeplex-read-it.aspx</link><pubDate>Thu, 22 Mar 2007 06:51:43 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2078132</guid><dc:creator>preishuber</dc:creator><slash:comments>12</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=2078132</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/03/22/disaster-strategy-ajax-toolkit-on-codeplex-read-it.aspx#comments</comments><description>&lt;p&gt;Perhaps you know the Dragpanelextender from the AJAX Control toolkit ( March). This have the feature to store the position of a drag panel personalized in profile settings. That's a general&amp;nbsp;functionality in the base class.&lt;/p&gt;&lt;font size="4"&gt; &lt;p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;ajaxToolkit&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#a31515"&gt;DragPanelExtender&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#ff0000"&gt;TargetControlID&lt;/font&gt;&lt;font color="#0000ff"&gt;="Panel1"&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#ff0000"&gt;DragHandleID&lt;/font&gt;&lt;font color="#0000ff"&gt;="drgPanel"&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#ff0000"&gt;BehaviorID&lt;/font&gt;&lt;font color="#0000ff"&gt;="HannesDrag"&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#ff0000"&gt;ID&lt;/font&gt;&lt;font color="#0000ff"&gt;="DragPanelExtender1"&lt;/font&gt; &lt;font color="#ff0000"&gt;runat&lt;/font&gt;&lt;font color="#0000ff"&gt;="server"&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;ProfileBindings&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;ajaxToolkit&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#a31515"&gt;ProfilePropertyBinding&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#ff0000"&gt;ExtenderPropertyName&lt;/font&gt;&lt;font color="#0000ff"&gt;="Location"&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#ff0000"&gt;ProfilePropertyName&lt;/font&gt;&lt;font color="#0000ff"&gt;="HannesPosition"&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;ProfileBindings&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;ajaxToolkit&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#a31515"&gt;DragPanelExtender&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;I used that control in a sample for a while. In my last AJAX course the postion was not stored in aspnetdb. So sample breaks.&lt;/p&gt; &lt;p&gt;After a long search I figured out following facts:&lt;/p&gt; &lt;p&gt;in floatingbeavior.js code documented out&lt;/p&gt; &lt;p&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var p = this.get_profileProperty();&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(p) {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var b = new Sys.Preview.Binding();&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.beginUpdate();&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.set_target(this);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.set_property("location");&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var profile = this.get_profileComponent();&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!profile) profile = Sys.Preview.Services.Components.Profile.instance;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.set_dataContext(profile);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.set_dataPath(p);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.set_direction(Sys.Preview.BindingDirection.InOut);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // we must hook into the loaded event since the profile may be loaded and the location property&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // will be different. But profile doesnt raise a change notificaiton for every property after a load&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var a = new Sys.Preview.InvokeMethodAction();&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.beginUpdate();&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.set_eventSource(profile);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.set_eventName("loadComplete");&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.set_target(b);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.set_method("evaluateIn");&lt;/p&gt; &lt;p&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.endUpdate();&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.endUpdate();&lt;/p&gt; &lt;p&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this._binding = b;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this._action = a;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;In extendercontrolebase.cs compiler directive&lt;/p&gt; &lt;p&gt;#if false&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* TODO: Migrate */&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; internal IScriptService EnsureProfileScriptService(ScriptManager sm, bool checkIfNeeded)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;...&lt;/p&gt; &lt;p&gt;and at the end in the&amp;nbsp;Assembly with reflector&lt;/p&gt; &lt;p&gt;[&lt;a title="System.Web.UI.PersistenceModeAttribute.PersistenceModeAttribute(PersistenceMode);" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.UI.PersistenceModeAttribute/.ctor(System.Web.UI.PersistenceMode)"&gt;&lt;font color="#006018"&gt;PersistenceMode&lt;/font&gt;&lt;/a&gt;(&lt;a title="System.Web.UI.PersistenceMode" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.UI.PersistenceMode"&gt;&lt;font color="#006018"&gt;PersistenceMode&lt;/font&gt;&lt;/a&gt;.&lt;a title="PersistenceMode System.Web.UI.PersistenceMode.InnerProperty;" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.UI.PersistenceMode/InnerProperty"&gt;&lt;font color="#006018"&gt;InnerProperty&lt;/font&gt;&lt;/a&gt;), &lt;a title="System.ObsoleteAttribute.ObsoleteAttribute(string);" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.ObsoleteAttribute/.ctor(String)"&gt;&lt;font color="#006018"&gt;Obsolete&lt;/font&gt;&lt;/a&gt;(&lt;font color="#800000"&gt;"WARNING: ProfileBindings are disabled for this Toolkit release pending technical issues.&amp;nbsp; We hope to re-enable this in an upcoming release"&lt;/font&gt;), &lt;a title="System.ComponentModel.DesignerSerializationVisibilityAttribute.DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility);" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System:2.0.0.0:b77a5c561934e089/System.ComponentModel.DesignerSerializationVisibilityAttribute/.ctor(System.ComponentModel.DesignerSerializationVisibility)"&gt;&lt;font color="#006018"&gt;DesignerSerializationVisibility&lt;/font&gt;&lt;/a&gt;(&lt;font color="#800000"&gt;2&lt;/font&gt;), &lt;a title="System.ComponentModel.BrowsableAttribute.BrowsableAttribute(bool);" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System:2.0.0.0:b77a5c561934e089/System.ComponentModel.BrowsableAttribute/.ctor(Boolean)"&gt;&lt;font color="#006018"&gt;Browsable&lt;/font&gt;&lt;/a&gt;(&lt;font color="#800000"&gt;false&lt;/font&gt;)]&lt;br&gt;&lt;font color="#1000a0"&gt;public&lt;/font&gt; &lt;a title="AjaxControlToolkit.ProfilePropertyBindingCollection" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://AjaxControlToolkit:1.0.10301.0:28f01b0e84b6d53e/AjaxControlToolkit.ProfilePropertyBindingCollection"&gt;&lt;font color="#006018"&gt;ProfilePropertyBindingCollection&lt;/font&gt;&lt;/a&gt; &lt;a class="bold" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://AjaxControlToolkit:1.0.10301.0:28f01b0e84b6d53e/AjaxControlToolkit.ExtenderControlBase/property:ProfileBindings:AjaxControlToolkit.ProfilePropertyBindingCollection"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;ProfileBindings&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;{&lt;br&gt;&lt;/p&gt; &lt;h2&gt;BAM!!!&lt;/h2&gt; &lt;h2&gt;Hey guys, some people are developing productive stuff with that and you drop a basic feature without any notice!&lt;/h2&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;Microsoft: AJAX Toolkit must be under full control, support and development path of Microsoft. With that status I can not suggest to use Microsoft AJAX Control Extenders. It's to much risk!&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2078132" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>call for papers: German ASP-konferenz june 18.-19.</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/03/02/call-for-papers-german-asp-konferenz-june-18-19.aspx</link><pubDate>Fri, 02 Mar 2007 14:52:52 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1866308</guid><dc:creator>preishuber</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=1866308</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/03/02/call-for-papers-german-asp-konferenz-june-18-19.aspx#comments</comments><description>&lt;p&gt;This is a public call for papers, send me (hannesp AT ppedv.de) your suggestions. ASP-konferenz is the oldest event in german speaking area for Microsoft Web developers. Great experts like Scott Guthrie, Alex Homer, Dave Sussman, Dino Esposito, Markus Egger or Charles Caroll have attended in the past. &lt;br&gt;Topic: build, design &amp;amp; host better websites&lt;br&gt;&amp;nbsp;&lt;img height="100" src="http://weblogs.asp.net/blogs/hpreishuber/WindowsLiveWriter/callforpapersGermanASPkonferenzjune18.1_DF4D/Speakerteaserani%5B2%5D.gif" width="140"&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;Location: Burghausen (near Munich)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1866308" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>Orcas: rounded Corners</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/03/01/orcas-rounded-corners.aspx</link><pubDate>Thu, 01 Mar 2007 15:46:34 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1850485</guid><dc:creator>preishuber</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=1850485</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/03/01/orcas-rounded-corners.aspx#comments</comments><description>&lt;p&gt;Just downloaded &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=B533619A-0008-4DD6-9ED1-47D482683C78&amp;amp;displaylang=en"&gt;Visual Studio Orcas VPC&lt;/a&gt; and see wonderfull rounded corners everywhere. But where is AJAX?&lt;/p&gt; &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/hpreishuber/WindowsLiveWriter/OrcasroundedCorners_EC28/image01.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="165" src="http://weblogs.asp.net/blogs/hpreishuber/WindowsLiveWriter/OrcasroundedCorners_EC28/image0.png" width="240" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1850485" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>VSone Munich is coming</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/02/09/vsone-munich-is-coming.aspx</link><pubDate>Fri, 09 Feb 2007 10:39:57 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1594338</guid><dc:creator>preishuber</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=1594338</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/02/09/vsone-munich-is-coming.aspx#comments</comments><description>&lt;p&gt;I am presenting three sessions on &lt;a href="http://www.vsone.de"&gt;VSone&lt;/a&gt; (Feb 13.-14. Munich, Germany). There is also a exhibition which can be visited for free!&lt;/p&gt; &lt;p&gt;[Update]&lt;/p&gt; &lt;p&gt;i also make a full day AJAX workshop in the post conference at feb 15th. Seats available!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1594338" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>codefree popup Master Detail with AJAX</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/02/08/codefree-popup-master-detail-with-ajax.aspx</link><pubDate>Thu, 08 Feb 2007 07:27:11 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1581980</guid><dc:creator>preishuber</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=1581980</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/02/08/codefree-popup-master-detail-with-ajax.aspx#comments</comments><description>&lt;p&gt;The top most issue in web applications is to present a huge amount of data. For my sample&amp;nbsp; I had to display the &lt;a href="http://www.ppedv.de/schulung/kurse/termine.aspx"&gt;schedule of .net development courses&lt;/a&gt;. A classic master detail scenario. If you place that on a webform the complete&amp;nbsp;place is not used. A popup will solve that. The goal is to solve that without JScript only using AJAX features. After investigating I figured out three possibility's&lt;/p&gt; &lt;ul&gt; &lt;li&gt;HoverExtender&lt;/li&gt; &lt;li&gt;HoverMenuExtender static&lt;/li&gt; &lt;li&gt;HoverMenuExtender with callback&amp;nbsp;for each row&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;I&amp;nbsp;have solved it in all three ways and the hovermenuextener static is the best. The solution is without&amp;nbsp;code.&lt;/p&gt; &lt;p&gt;1.) create a repeater ( or whatever)&lt;/p&gt; &lt;p&gt;2.) the Table row must have a server attribute and a ID (reihe)&lt;/p&gt; &lt;p&gt;3.) place a panel in a cell of that row&lt;/p&gt; &lt;p&gt;4.) put a hidden field in it to use it as control source for the detail grid&lt;/p&gt; &lt;p&gt;5.) put a repeater and sqldatasource into the panel with a controlparamter pointing to the hidden field&lt;/p&gt; &lt;p&gt;6.) extend the table row with a hovermenuextender which is placed&amp;nbsp;otside the row of the Master grid but inside the itemtemplate&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;ItemTemplate&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;tr&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="server"&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;id&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="reihe"&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;td&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;a&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;href&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=&lt;/font&gt;&lt;font size="3"&gt;&amp;lt;%#eval("url") %&amp;gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/font&gt;&lt;font size="3"&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;#&lt;/font&gt;&lt;font size="3"&gt;eval(&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;"title"&lt;/font&gt;&lt;font size="3"&gt;) %&amp;gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;a&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;td&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;td&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;align&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=right&amp;gt;&lt;/font&gt;&lt;font size="3"&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;#&lt;/font&gt;&lt;font size="3"&gt;Replace(Eval(&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;"dauer"&lt;/font&gt;&lt;font size="3"&gt;), &lt;/font&gt;&lt;font color="#a31515" size="3"&gt;"Tage"&lt;/font&gt;&lt;font size="3"&gt;, &lt;/font&gt;&lt;font color="#a31515" size="3"&gt;""&lt;/font&gt;&lt;font size="3"&gt;)%&amp;gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;td&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;td&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;align&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=right&amp;gt;&lt;/font&gt;&lt;font size="3"&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;#&lt;/font&gt;&lt;font size="3"&gt;Eval(&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;"preis"&lt;/font&gt;&lt;font size="3"&gt;, &lt;/font&gt;&lt;font color="#a31515" size="3"&gt;"{0:c}"&lt;/font&gt;&lt;font size="3"&gt;)%&amp;gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;td&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;td&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;td&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;td&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;Panel&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="pnlTermine"&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="server"&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;Width&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="250px"&lt;/font&gt;&lt;font size="3"&gt; &lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;CssClass&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="popupPanel"&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;GroupingText&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="Termine"&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;HiddenField&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="HiddenField1"&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="server"&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;Value&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=&lt;/font&gt;&lt;font size="3"&gt;&amp;lt;%#eval("seid") %&amp;gt; &lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;/&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;Repeater&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="rptDetails"&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;EnableViewState&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=false&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=server&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;DataSourceID&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="DSKursTermine"&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;ItemTemplate&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;b&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/font&gt;&lt;font size="3"&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;#&lt;/font&gt;&lt;font size="3"&gt; switch(eval(&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;"ort"&lt;/font&gt;&lt;font size="3"&gt;)) %&amp;gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;b&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;#&lt;/font&gt;&lt;font size="3"&gt;eval(&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;"termin"&lt;/font&gt;&lt;font size="3"&gt;,&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;"{0:dd}"&lt;/font&gt;&lt;font size="3"&gt;) %&amp;gt;.&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;#&lt;/font&gt;&lt;font size="3"&gt;eval(&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;"termin"&lt;/font&gt;&lt;font size="3"&gt;,&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;"{0:MMM}"&lt;/font&gt;&lt;font size="3"&gt;) %&amp;gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;ItemTemplate&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;Repeater&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;....&lt;/p&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;ajaxToolkit&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;HoverMenuExtender&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=server&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="popup1"&lt;/font&gt;&lt;font size="3"&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;PopupControlID&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="pnlTermine"&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;TargetControlID&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="reihe"&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;PopupPosition&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=Right&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;OffsetX&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=-100&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;HoverCssClass&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;="popupHover"&lt;/font&gt;&lt;font size="3"&gt; &lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;PopDelay&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=25&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;ajaxToolkit&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;HoverMenuExtender&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="3"&gt;ItemTemplate&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;....&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1581980" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>Nikhil's homework: 3 AJAX controls</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/02/06/nikhil-s-homework-3-ajax-controls.aspx</link><pubDate>Tue, 06 Feb 2007 07:56:24 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1558188</guid><dc:creator>preishuber</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=1558188</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/02/06/nikhil-s-homework-3-ajax-controls.aspx#comments</comments><description>&lt;p&gt;UpdateHistory&lt;/p&gt; &lt;p&gt;StyledUpdatePanel&lt;/p&gt; &lt;p&gt;AnimatedUpdatePanel&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.nikhilk.net/UpdateControls.aspx"&gt;http://www.nikhilk.net/UpdateControls.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1558188" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>Ajax Control Toolkit: yet another new build</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/02/05/ajax-control-toolkit-yet-another-new-build.aspx</link><pubDate>Mon, 05 Feb 2007 19:33:02 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1552451</guid><dc:creator>preishuber</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=1552451</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/02/05/ajax-control-toolkit-yet-another-new-build.aspx#comments</comments><description>&lt;p&gt;surprise, surprise new &lt;a href="http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx?ReleaseId=1747"&gt;bits available&lt;/a&gt;. From buildnumber 10123 to 10201 in only 9 days. Thats a product live cycle! By the way Microsoft: buildnumbers are small integers and end with 65535. So you have left ~6400 days of development. The&amp;nbsp;.net framework&amp;nbsp;team have less possibilitys. They stopped at 50727.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1552451" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>Date serialization changed (AJAX v1.0)</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/02/05/date-serialization-changed-ajax-v1-0.aspx</link><pubDate>Mon, 05 Feb 2007 15:11:29 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1550674</guid><dc:creator>preishuber</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=1550674</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/02/05/date-serialization-changed-ajax-v1-0.aspx#comments</comments><description>&lt;p&gt;in the ASP.NET AJAX Extensions 1.0 (RTW) the JSON format have changed for serialization of date datatype.&lt;/p&gt; &lt;p&gt;\/Date(123)\/&lt;/p&gt; &lt;p&gt;&lt;a href="http://weblogs.asp.net/hpreishuber/archive/2006/10/29/ASP.NET-AJAX-JSON-Date-serialization.aspx"&gt;prior it was&lt;/a&gt; &lt;/p&gt; &lt;p&gt;@1211212@&lt;/p&gt; &lt;p&gt;Both uses a count starting from Jan 1st 1970&lt;/p&gt; &lt;p&gt;If you have build your own method based on jscript eval your application will fail. The recommended way is to use Sys.Serialization.JavaScriptSerializer.deserialize&lt;/p&gt; &lt;p&gt;which encapsulate a regex replacement.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1550674" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>the missing AJAX Feature: documentation (now available!)</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/02/05/the-missing-ajax-feature-documentation-now-available.aspx</link><pubDate>Mon, 05 Feb 2007 15:00:09 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1550656</guid><dc:creator>preishuber</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=1550656</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/02/05/the-missing-ajax-feature-documentation-now-available.aspx#comments</comments><description>&lt;p&gt;AJAX is the first developer "product" or "technology" where no specs are in the MSDN documentation. Documentation is a essential software feature like security.&lt;/p&gt; &lt;p&gt;ASP.NET AJAX extensions&lt;/p&gt; &lt;p&gt;there&amp;nbsp;is only partial documentation &lt;a href="http://ajax.asp.net/documentation/default.aspx?tabid=47"&gt;online&lt;/a&gt; available. The best you can do are the walkthorughs. Since today the &lt;a href="http://ajax.asp.net/documentation/default.aspx?tabid=47"&gt;download&lt;/a&gt; of the web site&amp;nbsp;as&amp;nbsp;package is available. ( I have&amp;nbsp;looked for it on Friday).&amp;nbsp;Microsoft released last week the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ef2c1acc-051a-4fe6-ad72-f3bed8623b43&amp;amp;DisplayLang=en"&gt;source code&lt;/a&gt;&amp;nbsp;which is no common way to learn. Also the webcasts are not a efficent way to solve a development problems. All that&amp;nbsp;is still not enough! &lt;/p&gt; &lt;p&gt;ASP.NET Toolkit&lt;/p&gt; &lt;p&gt;Usercontrols&amp;nbsp;have been the success factor&amp;nbsp;for the VB story. Also the AJAX controls should&amp;nbsp;be under full control of a vendor: reliable, documented and must have a roadmap.&amp;nbsp;Microsoft please take&amp;nbsp;over full control! The documentation are samples which can be downloaded. I would pay for it!&lt;/p&gt; &lt;p&gt;ASP.NET futures&lt;/p&gt; &lt;p&gt;Nice idea to have a view on the upcoming things. But e.g. Autocompleteextender, which is&amp;nbsp;essential, have moved from futures to toolkit without the needed documentation or migration path. At the moment I can find NOTHING about XML Script. All my samples from dec ctp breaks. Only info that im found are 3 &lt;a href="http://download.microsoft.com/download/8/3/8/83889def-b71d-4cd7-9bea-44363d59b622/ASPAJAXSamples.msi"&gt;sample projects&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;CTP (community drops) issue&lt;/p&gt; &lt;p&gt;Microsoft ships a lot of public builds of AJAX.&amp;nbsp;This strategy ends up in a lot of public and free documents which are outdated (majority). If you use google and find a sample, you have no guarantee that this working or which build is used. This costs development time.&amp;nbsp;Yes i know &lt;a href="http://aspnetresources.com/blog/ms_ajax_cheat_sheets_batch2.aspx"&gt;cheat sheets&lt;/a&gt;, but should be job of microsoft to hand out that info.&lt;/p&gt; &lt;p&gt;In my opinion&amp;nbsp;for professional productivity of ASP.NET AJAX development we need at least following:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;better documentation&lt;/li&gt; &lt;li&gt;intellisense&lt;/li&gt; &lt;li&gt;less CTP's&lt;/li&gt; &lt;li&gt;roadmap (18 month)&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1550656" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>Call Page WebMethod from a Winforms Client using AJAX</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/01/19/call-page-webmethod-from-a-winforms-client.aspx</link><pubDate>Fri, 19 Jan 2007 20:03:11 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1435095</guid><dc:creator>preishuber</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=1435095</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/01/19/call-page-webmethod-from-a-winforms-client.aspx#comments</comments><description>&lt;p&gt;My primary idea for this post was how to use the small and beauty JSON format for data transfer in a windows mobile application. For that I use the infrastructure of AJAX. I implement a Webmethod in a classic ASPX page.&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;script&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="server"&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&amp;lt;WebMethod()&amp;gt; _&lt;/p&gt; &lt;p&gt;&amp;lt;ScriptMethod()&amp;gt; _&lt;/p&gt; &lt;p&gt;Public Shared Function Nachladen1(ByVal contextKey As String) As String&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Return "Hannes Preishuber"&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;End Function&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;script&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;For calling the Method form the page (or from a webservice) i use a Winforms application and the httpwebrequest class. Then i call the URL&amp;nbsp;following the method name. The second part is to use a specific content&amp;nbsp; type in header "application/json". To transfer complex data you have to build a json type. For my sample i used a simple string containing "test". The contextKey is a reserved word.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;The result is in my sample also a string and can be passed to a textbox.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Sub&lt;/font&gt;&lt;font size="2"&gt; Button1_Click(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; sender &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; System.Object, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; e &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; System.EventArgs) &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Handles&lt;/font&gt;&lt;font size="2"&gt; Button1.Click&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; wRequest &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; HttpWebRequest = HttpWebRequest.Create(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"http://url/Default4.aspx/Nachladen1"&lt;/font&gt;&lt;font size="2"&gt;)&lt;/p&gt; &lt;p&gt;wRequest.Method = &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"POST"&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;wRequest.ContentType = &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"application/json; charset=utf-8"&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;wRequest.Headers.Add(HttpRequestHeader.Pragma.ToString, &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"no-cache"&lt;/font&gt;&lt;font size="2"&gt;)&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Using&lt;/font&gt;&lt;font size="2"&gt; writer &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; Stream = wRequest.GetRequestStream&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; send &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;String&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;send = &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"{""contextKey"":""test""}"&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; data &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; [Byte]() = Encoding.ASCII.GetBytes(send)&lt;/p&gt; &lt;p&gt;writer.Write(data, 0, data.Length)&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Using&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; WResponse &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; HttpWebResponse = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;CType&lt;/font&gt;&lt;font size="2"&gt;(wRequest.GetResponse, HttpWebResponse)&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; recieve &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; StreamReader = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt; StreamReader(WResponse.GetResponseStream())&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; result &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = recieve.ReadToEnd.ToString&lt;/p&gt; &lt;p&gt;TextBox1.Text = result&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Sub&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;Small nice and sexy!&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/hpreishuber/WindowsLiveWriter/CallPageWebMethodfromaWinformsClient_12776/image%7B0%7D%5B1%5D.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="224" src="http://weblogs.asp.net/blogs/hpreishuber/WindowsLiveWriter/CallPageWebMethodfromaWinformsClient_12776/image%7B0%7D.png" width="240" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;a href="http://www.ppedv.de/schulung/kurse/ajaxAspNet.aspx"&gt;AJAX&lt;/a&gt;&lt;/p&gt;&lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1435095" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/VB.NET/default.aspx">VB.NET</category></item><item><title>Ajax Toolkit: HoverMenuextender is calling webservice</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/01/18/ajax-toolkit-hovermenuextender-is-calling-webservice.aspx</link><pubDate>Thu, 18 Jan 2007 15:14:15 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1430629</guid><dc:creator>preishuber</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=1430629</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/01/18/ajax-toolkit-hovermenuextender-is-calling-webservice.aspx#comments</comments><description>&lt;p&gt;the samples from the AJAX toolkit have nothing&amp;nbsp;about hoverextender and only one sample about hovermenuextender control. And this sample don't use a webservice.&lt;/p&gt; &lt;p&gt;So here my experience after hard debugging: The important part is the Webmethod signature which needs exactly the parameter name contextKey. I searched hours in google and didn't find an hint about that.&lt;/p&gt; &lt;p&gt;If you use a webservice you need the attribute starting "dynamic..". The result is shown in the control [dynamiccontrolid] which can be the same as [popupcontrol]. &lt;/p&gt;&lt;font size="2"&gt; &lt;p&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;@&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;Page&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Language&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="VB"&lt;/font&gt;&lt;font size="2"&gt; %&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;@&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;Register&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Assembly&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="AjaxControlToolkit"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Namespace&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="AjaxControlToolkit"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;TagPrefix&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="cc1"&lt;/font&gt;&lt;font size="2"&gt; %&amp;gt;&lt;/font&gt;  &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;script&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="server"&amp;gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&amp;lt;WebMethod()&amp;gt; _&lt;/p&gt; &lt;p&gt;&amp;lt;ScriptMethod()&amp;gt; _&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Shared&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Function&lt;/font&gt;&lt;font size="2"&gt; Nachladen1(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; contextKey &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;String&lt;/font&gt;&lt;font size="2"&gt;) &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;String&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#008000" size="2"&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Return&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"Hannes Preishuber" &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Function&lt;/p&gt; &lt;p&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;script&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;html&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;xmlns&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="http://www.w3.org/1999/xhtml"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;head&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="server"&amp;gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;head&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;body&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;form&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;id&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="form1"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="server"&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;ScriptManager&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="ScriptManager1"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="server"&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;ScriptManager&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;Button&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="Button1"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="server"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Text&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="Button"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;/&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;cc1&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;HoverMenuExtender&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="HoverMenuExtender1"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="server"&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;PopupControlID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="Panel1"&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;TargetControlID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="Button1"&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;PopupPosition&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="Left"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;BehaviorID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="hmb1"&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DynamicControlID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=Label1&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DynamicServiceMethod&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="Nachladen1"&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DynamicContextKey&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="test"&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;cc1&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;HoverMenuExtender&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;Label&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="Label1"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="server"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Text&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="Label"&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;Label&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;Panel&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="Panel1"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="server"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Height&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="50px"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Width&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="125px"&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;show me .....&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;Panel&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;input&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;id&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="Button2"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;type&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="button"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;value&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="button"&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;language&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;="javascript"&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;/&amp;gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;form&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;body&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;html&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;a href="http://www.vsone.de/"&gt;ajax&lt;/a&gt;&lt;/p&gt;&lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1430629" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item><item><title>Ajax Hands On Lab from Sascha Corti</title><link>http://weblogs.asp.net/hpreishuber/archive/2007/01/17/ajax-hands-on-lab-from-sascha-corti.aspx</link><pubDate>Wed, 17 Jan 2007 21:22:53 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1426332</guid><dc:creator>preishuber</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hpreishuber/rsscomments.aspx?PostID=1426332</wfw:commentRss><comments>http://weblogs.asp.net/hpreishuber/archive/2007/01/17/ajax-hands-on-lab-from-sascha-corti.aspx#comments</comments><description>&lt;p&gt;Sascha from Microsoft Switzerland have published a Hands on Lab including, samples and slides.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.corti.com/WebLogSascha/PermaLink.aspx/3089ce74-0e62-430d-8611-ad9a4871aa95"&gt;http://www.corti.com/WebLogSascha/PermaLink.aspx/3089ce74-0e62-430d-8611-ad9a4871aa95&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1426332" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hpreishuber/archive/tags/Ajax/default.aspx">Ajax</category></item></channel></rss>