<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetside.org/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Blog di LucaB</title><subtitle type="html">audio, video, disco</subtitle><id>http://dotnetside.org/blogs/lucab/atom.aspx</id><link rel="alternate" type="text/html" href="http://dotnetside.org/blogs/lucab/default.aspx" /><link rel="self" type="application/atom+xml" href="http://dotnetside.org/blogs/lucab/atom.aspx" /><generator uri="http://communityserver.org" version="4.0.30619.63">Community Server</generator><updated>2007-11-03T09:02:00Z</updated><entry><title>Nel mezzo del cammin di nostra vita...</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2008/02/22/Nel-mezzo-del-cammin-di-nostra-vita_2E00__2E00__2E00_.aspx" /><id>/blogs/lucab/archive/2008/02/22/Nel-mezzo-del-cammin-di-nostra-vita_2E00__2E00__2E00_.aspx</id><published>2008-02-23T07:20:03Z</published><updated>2008-02-23T07:20:03Z</updated><content type="html">&lt;p&gt;...mi ritrovai al solito incasinato.&lt;/p&gt; &lt;p&gt;Mi ricordo che ai tempi di Dante voleva dire 35 anni (come si fa l'emoticon per le corna? &lt;img src="http://www.dotnetside.org/emoticons/emotion-5.gif" alt="Wink" /&gt;).&lt;/p&gt; &lt;p&gt;Oggi ci sono arrivato, ma il regalo più bello l'ho già avuto 9 giorni fa, con la nascita della piccola Rosa (che aggiunta a Teresa ha aumentato considerevolmente il livello di entropia, già da prima della nascita...)&lt;/p&gt; &lt;p&gt;Be' non mi resta che pubblicare le foto delle mie bellezze, per post "tecnici" (o pseudo-tali) ci vorrà un po' di tempo ancora... &lt;/p&gt; &lt;p&gt;&lt;a title="DSC_4212" href="http://www.flickr.com/photos/17674727@N03/2283996747/" target="_blank"&gt;&lt;img height="159" alt="DSC_4212" src="http://static.flickr.com/3113/2283996747_940d2550b7.jpg" width="240" border="0"&gt;&lt;/a&gt;&lt;a title="DSC_4243" href="http://www.flickr.com/photos/17674727@N03/2284784902/" target="_blank"&gt;&lt;img style="margin:0px 0px 0px 25px;" height="240" alt="DSC_4243" src="http://static.flickr.com/3055/2284784902_bd79884f02.jpg" width="159" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;P.S.: &lt;a title="Buon compleanno DotNetSide" href="http://www.dotnetside.org/blogs/vito/archive/2008/02/22/Buon-compleanno-DotNetSide.aspx" target="_blank"&gt;ho appreso oggi&lt;/a&gt; di essere nato lo stesso giorno di DotNetSide, anche se di qualche anno prima...&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e1555f1c-5129-4d1e-8dd1-cc74b8f2cb0a" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/compleanno" rel="tag"&gt;compleanno&lt;/a&gt;, &lt;a href="http://technorati.com/tags/nascita" rel="tag"&gt;nascita&lt;/a&gt;, &lt;a href="http://technorati.com/tags/figli" rel="tag"&gt;figli&lt;/a&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2008/02/22/Nel-mezzo-del-cammin-di-nostra-vita_2E002E002E00_.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=15908" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="Varie" scheme="http://dotnetside.org/blogs/lucab/archive/tags/Varie/default.aspx" /></entry><entry><title>Non è arrivato per Natale ...</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2008/01/10/Non-_E800_-arrivato-per-Natale-_2E00__2E00__2E00_.aspx" /><id>/blogs/lucab/archive/2008/01/10/Non-_E800_-arrivato-per-Natale-_2E00__2E00__2E00_.aspx</id><published>2008-01-10T08:05:05Z</published><updated>2008-01-10T08:05:05Z</updated><content type="html">&lt;a title="Dilbert Board Game" href="http://www.flickr.com/photos/17674727@N03/1854582839/"&gt;&lt;img alt="Dilbert Board Game" src="http://static.flickr.com/2067/1854582839_16386a1168.jpg" align="right" border="0"&gt;&lt;/a&gt;  &lt;p&gt;... ma stavolta le Poste Italiane non c'entrano.&lt;/p&gt; &lt;p&gt;Contrariamente &lt;a title="Congratulations. You won 15th Prize in the October 2007 Contest" href="http://www.dotnetside.org/blogs/lucab/archive/2007/11/04/Congratulations.-You-won-15th-Prize-in-the-October-2007-Contest.aspx"&gt;alle mie aspettative&lt;/a&gt;, infatti, ci ha messo solo 12 giorni, anzi 6 giorni lavorativi, peccato che sia stato spedito quando il Natale era già passato.&lt;/p&gt; &lt;p&gt;Visti &lt;a title="Io sono incasinato, ma le poste..." href="http://www.dotnetside.org/blogs/lucab/archive/2007/10/03/Io-sono-incasinato_2C00_-ma-le-poste_2E002E002E00_.aspx"&gt;i&lt;/a&gt; &lt;a title="Quiz: LIFO, FIFO e poste italiane" href="http://www.dotnetside.org/blogs/lucab/archive/2007/11/05/Quiz_3A00_-LIFO_2C00_-FIFO-e-poste-italiane.aspx"&gt;precedenti&lt;/a&gt;, voglio sperare che il 2008 sia l'anno della svolta per le poste ...&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c04473ab-6e8e-44e2-a60e-fbca931d2f2a" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/community-credit" rel="tag"&gt;community-credit&lt;/a&gt;, &lt;a href="http://technorati.com/tags/poste" rel="tag"&gt;poste&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2008/01/10/Non-_E800_-arrivato-per-Natale-_2E002E002E00_.aspx"&gt;View blog reactions&lt;/a&gt;&lt;a title="Dilbert Board Game" href="http://www.flickr.com/photos/17674727@N03/1854582839/"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=14236" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="Varie" scheme="http://dotnetside.org/blogs/lucab/archive/tags/Varie/default.aspx" /></entry><entry><title>Profile ASP.NET con un Web Application Project</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2008/01/08/Profile-ASP.NET-con-un-Web-Application-Project.aspx" /><id>/blogs/lucab/archive/2008/01/08/Profile-ASP.NET-con-un-Web-Application-Project.aspx</id><published>2008-01-09T07:30:47Z</published><updated>2008-01-09T07:30:47Z</updated><content type="html">&lt;p&gt;Utilizzando i &lt;em&gt;Web Application Project, &lt;/em&gt;mi è capitato &lt;a title="Compilare le classi di un progetto Web Application (dov'&amp;egrave; finita l'App_Code?)" href="http://www.dotnetside.org/blogs/lucab/archive/2008/01/06/Compilare-le-classi-di-un-progetto-Web-Application-_2800_dov_2700E800_-finita-l_2700_App_5F00_Code_3F002900_.aspx"&gt;un altro&lt;/a&gt; problema, stavolta con i profili di ASP.NET. A differenza di un &lt;em&gt;WebSite&lt;/em&gt;, con i &lt;em&gt;Web Application Project&lt;/em&gt;, infatti, non è possibile accedere da codice ad oggetti Profile.  &lt;p&gt;Ciò è dovuto al fatto che gli oggetti Profile sono tipi generati &lt;em&gt;runtime&lt;/em&gt; da ASP.NET, mentre nei &lt;em&gt;Web Application Project&lt;/em&gt; i file sono compilati prima e non possono accedere a questi tipi.  &lt;p&gt;Pertanto per accedere all'ASP.NET Profile è necessario scrivere una classe che faccia da proxy. &lt;a title="ASP.NET WebProfile Generator" href="http://www.codeplex.com/WebProfile" target="_blank"&gt;Da questo indirizzo&lt;/a&gt; su codeplex è possibile scaricare un add-in per Visual Studio 2005 che genera una classe proxy strongly typed, la classe WebProfile, mediante la quale è possibile accedere all'ASP.NET Profile.  &lt;p&gt;Per scaricare l'add-in:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://www.codeplex.com/WebProfile"&gt;ASP.NET WebProfile Generator&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ec0bad20-de68-4899-93da-b3fb5fb6ccf5" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/web%20application%20project" rel="tag"&gt;web application project&lt;/a&gt;, &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/profile" rel="tag"&gt;profile&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2008/01/08/Profile-ASP.NET-con-un-Web-Application-Project.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=14152" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="ASP.NET" scheme="http://dotnetside.org/blogs/lucab/archive/tags/ASP.NET/default.aspx" /></entry><entry><title>Distinguere un postback sincrono da uno asincrono</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2008/01/08/Distinguere-un-postback-sincrono-da-uno-asincrono.aspx" /><id>/blogs/lucab/archive/2008/01/08/Distinguere-un-postback-sincrono-da-uno-asincrono.aspx</id><published>2008-01-08T16:24:13Z</published><updated>2008-01-08T16:24:13Z</updated><content type="html">&lt;p&gt;Con l'utilizzo di AJAX, magari anche solo attraverso gli UpdatePanel, può capitare di voler distinguere tra un PostBack asincrono ed uno sincrono. Per farlo è sufficiente riferirirsi alla proprietà IsInAsyncPostBack dello ScriptManager.&lt;/p&gt; &lt;p&gt;Ad esempio, supponiamo di avere la seguente pagina Default.aspx:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:black;background-color:#ffff00;"&gt;&amp;lt;%@ Page Language="vb" AutoEventWireup="false" Codebehind="Default.aspx.vb"&lt;br&gt; Inherits="EsPB._Default" %&amp;gt;&lt;/span&gt;

&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &lt;br&gt; "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;html&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"http://www.w3.org/1999/xhtml"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;head&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Prova PostBack&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;head&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;body&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;form&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"form1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;ScriptManager&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"ScriptManager1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;UpdatePanel&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"UpdatePanel1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;Label&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Label1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"PostBack:" /&amp;gt;&lt;/span&gt;
          &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;Button&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Button1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Asincrono"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;br&gt;          &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;UpdatePanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;Button&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Button2"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Sincrono"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;form&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;body&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;html&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Per distinguere tra i due tipi di postback si può scrivere nel file Default.aspx.vb:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;Partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Class&lt;/span&gt; _Default
    &lt;span style="color:#0000ff;"&gt;Inherits&lt;/span&gt; System.Web.UI.Page

    &lt;span style="color:#0000ff;"&gt;Protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; Page_Load(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Object&lt;/span&gt;, _&lt;br&gt;      &lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; e &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="color:#0000ff;"&gt;Handles&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.Load
        &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.IsPostBack &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; ScriptManager1.IsInAsyncPostBack &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
                Label1.Text &amp;amp;= "&lt;span style="color:#8b0000;"&gt; Asincrono&lt;/span&gt;"
            &lt;span style="color:#0000ff;"&gt;Else&lt;/span&gt;
                Label1.Text &amp;amp;= "&lt;span style="color:#8b0000;"&gt; Sincrono&lt;/span&gt;"
            &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;

&lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Class&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;In questo modo premendo Button1, posto all'interno dell'UpdatePanel, si genera un postback asincrono e quindi si aggiunge la scritta "Asincrono" alla label nella pagina. Invece premendo Button2, che genera un normale postback (viene ricaricata l'intera pagina),&amp;nbsp; si aggiunge la scritta "Sincrono".&lt;/p&gt;
&lt;p&gt;Quando si fa uso di MasterPage, bisogna far riferimento allo ScriptManager della pagina Master. Ad esempio&lt;/p&gt;
&lt;p&gt;MasterPage.Master&lt;/p&gt;&lt;pre&gt;&lt;span style="color:black;background-color:#ffff00;"&gt;&amp;lt;%@ Master Language="VB" AutoEventWireup="false" &lt;br&gt;CodeBehind="MasterPage.master.vb" Inherits="EsPB.MasterPage" %&amp;gt;&lt;/span&gt;

&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &lt;br&gt; "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;

&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;html&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"http://www.w3.org/1999/xhtml"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;head&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Prova PostBack con MasterPage&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;head&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;body&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;form&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"form1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;ScriptManager&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"ScriptManager1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;ScriptManager&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;ContentPlaceHolder&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"ContentPlaceHolder1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;ContentPlaceHolder&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;form&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;body&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;html&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;DefaultContent.aspx&lt;/p&gt;&lt;pre&gt;&lt;span style="color:black;background-color:#ffff00;"&gt;&amp;lt;%@ Page Language="vb" AutoEventWireup="false" &lt;br&gt;MasterPageFile="~/MasterPage.Master" Codebehind="DefaultContent.aspx.vb" &lt;br&gt;Inherits="EsPB.DefaultContent" Title="Prova PostBack con MasterPage" %&amp;gt;&lt;/span&gt;

&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;Content&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Content1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ContentPlaceHolderID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"ContentPlaceHolder1"&lt;/span&gt; &lt;br&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;ScriptManagerProxy&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"ScriptManagerProxy1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;ScriptManagerProxy&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;UpdatePanel&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"UpdatePanel1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;Label&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Label1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"PostBack:"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; /&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;Button&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Button1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Asincrono"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;br&gt;      &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;UpdatePanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;Button&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Button2"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Sincrono"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;Content&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;DefaultContent.aspx.vb&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Class&lt;/span&gt; DefaultContent
    &lt;span style="color:#0000ff;"&gt;Inherits&lt;/span&gt; System.Web.UI.Page

    &lt;span style="color:#0000ff;"&gt;Protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; Page_Load(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Object&lt;/span&gt;, _&lt;br&gt;      &lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; e &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="color:#0000ff;"&gt;Handles&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.Load
        &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.IsPostBack &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; sm &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; ScriptManager = &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.Master.FindControl("&lt;span style="color:#8b0000;"&gt;ScriptManager1&lt;/span&gt;")
            &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; sm.IsInAsyncPostBack &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
                Label1.Text &amp;amp;= "&lt;span style="color:#8b0000;"&gt; Asincrono&lt;/span&gt;"
            &lt;span style="color:#0000ff;"&gt;Else&lt;/span&gt;
                Label1.Text &amp;amp;= "&lt;span style="color:#8b0000;"&gt; Sincrono&lt;/span&gt;"
            &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;

&lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Class&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:066bd941-a233-4042-8982-6198c57de119" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/vb.net" rel="tag"&gt;vb.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ajax" rel="tag"&gt;ajax&lt;/a&gt;, &lt;a href="http://technorati.com/tags/postback" rel="tag"&gt;postback&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2008/01/08/Distinguere-un-postback-sincrono-da-uno-asincrono.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=14103" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="VB.NET" scheme="http://dotnetside.org/blogs/lucab/archive/tags/VB.NET/default.aspx" /><category term="ASP.NET" scheme="http://dotnetside.org/blogs/lucab/archive/tags/ASP.NET/default.aspx" /><category term="AJAX" scheme="http://dotnetside.org/blogs/lucab/archive/tags/AJAX/default.aspx" /></entry><entry><title>Avviare il web server di sviluppo del framework .NET</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2008/01/07/Avviare-il-web-server-di-sviluppo-del-framework-.NET.aspx" /><id>/blogs/lucab/archive/2008/01/07/Avviare-il-web-server-di-sviluppo-del-framework-.NET.aspx</id><published>2008-01-07T16:45:05Z</published><updated>2008-01-07T16:45:05Z</updated><content type="html">&lt;p&gt;Tempo fa avevo il problema di far lavorare Expression Web nella root del web server di sviluppo del framework, invece che sotto una directory virtuale. &lt;a title="Hanno avvisato il Team di Visual Studio dell'uscita di Vista?" href="http://www.dotnetside.org/blogs/lucab/archive/2007/05/25/Hanno-avvisato-il-Team-di-Visual-Studio-dell_2700_uscita-di-Vista_3F00_.aspx"&gt;Avevo risolto&lt;/a&gt; lo stesso problema per Visual Studio 2005, ma questa volta però non sono stato capace di trovare nulla (né in rete né tra le opzioni del programma).&lt;/p&gt; &lt;p&gt;Allora mi è venuto in mente di aver letto &lt;a title="Un CMD per lanciare il WebServer lite del Framework (WebDev.Webserver.exe)" href="http://blogs.ugidotnet.org/BabbaBlog/archive/2007/11/13/89667.aspx" target="_blank"&gt;questo post&lt;/a&gt; (&lt;em&gt;per l'autore: hai visto che a qualcuno è servito? &lt;/em&gt;&lt;img src="http://www.dotnetside.org/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;em&gt;)&lt;/em&gt;, in cui si spiega come sia possibile avviare manualmente il web server di sviluppo, ossia il file WebDev.Webserver.exe che si trova nella directory %WINDIR%\Microsoft.NET\Framework\v2.0.50727&lt;/p&gt; &lt;p&gt;Le istruzioni per l'uso sono visualizzabili digitando da linea di comando:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;%WINDIR%\Microsoft.NET\Framework\v2.0.50727\WebDev.Webserver.exe /?&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;che produce in output:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;ASP.NET Development Server Usage:&lt;br&gt;WebDev.WebServer /port:&amp;lt;port number&amp;gt; /path:&amp;lt;physical path&amp;gt; [/vpath:&amp;lt;virtual path&amp;gt;]  &lt;p&gt;port number:&lt;br&gt;[Optional] An unused port number between 1 and 65535.&lt;br&gt;The default is 80 (usable if you do not also have IIS listening on the same port).  &lt;p&gt;physical path:&lt;br&gt;A valid directory name where the Web application is rooted.  &lt;p&gt;virtual path:&lt;br&gt;[Optional] The virtual path or application root in the form of '/&amp;lt;app name&amp;gt;'.&lt;br&gt;The default is simply '/'.  &lt;p&gt;Example:&lt;br&gt;WebDev.WebServer /port:8080 /path:"c:\inetpub\wwwroot\MyApp" /vpath:"/MyApp"  &lt;p&gt;You can then access the Web application using a URL of the form:&lt;br&gt;&lt;a href="http://localhost:8080/MyApp"&gt;http://localhost:8080/MyApp&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Per risolvere il mio problema è bastato quindi lanciare il comando: &lt;blockquote&gt; &lt;p&gt;WebDev.WebServer /path:"c:\miosito" &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;(poiché avevo anche bisogno di lavorare sulla porta 80, oltre che nella root) &lt;p&gt;Sempre sul &lt;a title="Un CMD per lanciare il WebServer lite del Framework (WebDev.Webserver.exe)" href="http://blogs.ugidotnet.org/BabbaBlog/archive/2007/11/13/89667.aspx" target="_blank"&gt;post di Paolo Ongari&lt;/a&gt; ci sono, invece, le istruzioni per un file batch completo.  &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:14340a96-5a44-4548-8d53-3df962c5f361" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/development%20server" rel="tag"&gt;development server&lt;/a&gt;, &lt;a href="http://technorati.com/tags/expression%20web" rel="tag"&gt;expression web&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2008/01/07/Avviare-il-web-server-di-sviluppo-del-framework-.NET.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=14065" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="ASP.NET" scheme="http://dotnetside.org/blogs/lucab/archive/tags/ASP.NET/default.aspx" /></entry><entry><title>Compilare le classi di un progetto Web Application (dov'è finita l'App_Code?)</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2008/01/06/Compilare-le-classi-di-un-progetto-Web-Application-_2800_dov_2700E800_-finita-l_2700_App_5F00_Code_3F002900_.aspx" /><id>/blogs/lucab/archive/2008/01/06/Compilare-le-classi-di-un-progetto-Web-Application-_2800_dov_2700E800_-finita-l_2700_App_5F00_Code_3F002900_.aspx</id><published>2008-01-06T23:03:03Z</published><updated>2008-01-06T23:03:03Z</updated><content type="html">&lt;p&gt;Da un po' di tempo sto provando ad utilizzare i &lt;em&gt;Web Application Project&lt;/em&gt; di Visual Studio 2005 per la realizzazione di siti web. Ci sono, a mio avviso, diversi vantaggi in questo approccio, ad esempio la possibilità di &lt;a title="Gestire diversi file di configurazione (web.config) nello stesso progetto" href="http://www.dotnetside.org/blogs/lucab/archive/2007/10/08/Gestire-diversi-file-di-configurazione-_2800_web.config_2900_-nello-stesso-progetto.aspx"&gt;gestire diversi file di configurazione&lt;/a&gt;. Però con l'uso sto scoprendo anche diverse "scomodità", almeno finché non si impara come fare.&lt;/p&gt; &lt;p&gt;Un problema che mi ha portato via un bel po' di tempo è stato la scomparsa dell'App_Code. Nei progetti Web Application non esiste la directory App_Code, ossia quella directory speciale, introdotta con ASP.NET 2.0 in cui basta mettere il codice sorgente delle nostre classi per trovarsele condivise per tutta l'applicazione. In pratica è come referenziare un assembly, solo che qui l'assembly è generato a runtime.&lt;/p&gt; &lt;p&gt;Poiché avevo la necessità di condividere delle classi tra le pagine di una mia applicazione web, ho testardamente provato ad aggiungere al progetto una cartella denominata App_Code. Ovviamente non compariva tra le voci di "Add ASP.NET Folder", ma una volta aggiunta (come cartella qualsiasi, dandole il nome "App_Code"), è stata visualizzata con l'icona tipica della cartella ASP.NET.&lt;/p&gt; &lt;p&gt;Ho quindi aggiunto le mie classi in questa cartella, ma anche dopo aver compilato, queste non erano condivise, l'intellisense di Visual Studio non le vedeva e forzandone l'uso nelle pagine, il compilatore dava errore.&lt;/p&gt; &lt;p&gt;Dopo un bel po' di ricerche su Internet, e di prove seguendo consigli sbagliati trovati in rete del tipo "metti le classi in App_GlobalResource" (stavolta stranamente non ho trovato nessuno che abbia dato la colpa a Vista &lt;img src="http://www.dotnetside.org/emoticons/emotion-5.gif" alt="Wink" /&gt;), finalmente sono arrivato alla &lt;a title="Build Action For Web Application Classes" href="http://forums.asp.net/t/1197129.aspx" target="_blank"&gt;banalissima&lt;/a&gt;&amp;nbsp;&lt;a title="Web Application Project Conversion Tips" href="http://aspadvice.com/blogs/ssmith/archive/2007/01/23/Web-Application-Project-Conversion-Tips.aspx" target="_blank"&gt;soluzione&lt;/a&gt;:&lt;/p&gt; &lt;p&gt;è sufficiente mettere le classi che andrebbero nella cartella App_Code in una normale cartella&lt;sup&gt;[1]&lt;/sup&gt; ed assicurarsi che ciascuno dei file delle classi (.vb o .cs) abbia impostato nelle proprietà, alla voce "Build Action", il valore "Compile" e non "Content", che sembra quello predefinito.&lt;/p&gt; &lt;p&gt;Magari l'avessi saputo prima...&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:de3d4506-fa7d-4d6d-b466-955b6a1846f0" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/web%20application%20project" rel="tag"&gt;web application project&lt;/a&gt;, &lt;a href="http://technorati.com/tags/visual%20studio" rel="tag"&gt;visual studio&lt;/a&gt;, &lt;a href="http://technorati.com/tags/compilazione" rel="tag"&gt;compilazione&lt;/a&gt;, &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;&lt;/div&gt; &lt;p&gt; &lt;hr&gt; &lt;/p&gt; &lt;p&gt;&lt;a name="fn1"&gt;&lt;/a&gt;&lt;sup&gt;[1]&lt;/sup&gt; dovrebbe andare bene anche la cartella App_Code, che in un Web Application Project ha lo stesso valore di una cartella qualsiasi, però io non rischierei (anche se con piccole prove sembrava funzionare normalmente)&lt;/p&gt; &lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2008/01/06/Compilare-le-classi-di-un-progetto-Web-Application-_2800_dov_2700E800_-finita-l_2700_App_5F00_Code_3F002900_.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=14070" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="ASP.NET" scheme="http://dotnetside.org/blogs/lucab/archive/tags/ASP.NET/default.aspx" /><category term="Visual Studio" scheme="http://dotnetside.org/blogs/lucab/archive/tags/Visual+Studio/default.aspx" /></entry><entry><title>Personalizzare lo SliderExtender Control dell'AJAX Control Toolkit</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2008/01/06/Personalizzare-lo-SliderExtender-Control-dell_2700_AJAX-Control-Toolkit.aspx" /><id>/blogs/lucab/archive/2008/01/06/Personalizzare-lo-SliderExtender-Control-dell_2700_AJAX-Control-Toolkit.aspx</id><published>2008-01-06T08:26:20Z</published><updated>2008-01-06T08:26:20Z</updated><content type="html">&lt;p&gt;In &lt;a title="SliderExtender layout and custom appearance" href="http://aspadvice.com/blogs/garbin/archive/2007/12/10/SliderExtender-layout-and-custom-appearance.aspx" target="_blank"&gt;questo post&lt;/a&gt; di Alessandro Gallo (&lt;a title="December 16th Links: ASP.NET, ASP.NET AJAX, ASP.NET MVC, VS, .NET, IIS7, WPF" href="http://weblogs.asp.net/scottgu/archive/2007/12/16/december-16th-links-asp-net-asp-net-ajax-asp-net-mvc-vs-net-iis7-wpf.aspx" target="_blank"&gt;segnalato&lt;/a&gt; da Scott Guthrie insieme a tanta altra roba interessante) si trova una descrizione dettagliata di come è fatto il layout e come sia possibile personalizzare lo SliderExtender attraverso i CSS.&lt;/p&gt; &lt;p&gt;Per dettagli:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a title="SliderExtender layout and custom appearance" href="http://aspadvice.com/blogs/garbin/archive/2007/12/10/SliderExtender-layout-and-custom-appearance.aspx" target="_blank"&gt;SliderExtender layout and custom appearance&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:41884ac9-9a17-454e-a955-32e245e78965" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ajax%20control%20toolkit" rel="tag"&gt;ajax control toolkit&lt;/a&gt;, &lt;a href="http://technorati.com/tags/css" rel="tag"&gt;css&lt;/a&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2008/01/06/Personalizzare-lo-SliderExtender-Control-dell_2700_AJAX-Control-Toolkit.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=14037" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="CSS" scheme="http://dotnetside.org/blogs/lucab/archive/tags/CSS/default.aspx" /><category term="AJAX Control Toolkit" scheme="http://dotnetside.org/blogs/lucab/archive/tags/AJAX+Control+Toolkit/default.aspx" /></entry><entry><title>Come ottenere il valore di uno Uniqueidentifier dopo l'insert con SQL server</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2008/01/05/Come-ottenere-il-valore-di-uno-Uniqueidentifier-dopo-l_2700_insert-con-SQL-server.aspx" /><id>/blogs/lucab/archive/2008/01/05/Come-ottenere-il-valore-di-uno-Uniqueidentifier-dopo-l_2700_insert-con-SQL-server.aspx</id><published>2008-01-05T16:30:07Z</published><updated>2008-01-05T16:30:07Z</updated><content type="html">&lt;p&gt;A &lt;a title="Returning the Value of a Uniqueidentifier after an Insert in SQL Server" href="http://devnulled.com/content/2005/02/returning-the-value-of-a-uniqueidentifier-after-an-insert-in-sql-server/" target="_blank"&gt;quanto&lt;/a&gt; &lt;a title="Uniqueidentifier vs. IDENTITY" href="http://www.sqlteam.com/article/uniqueidentifier-vs-identity" target="_blank"&gt;pare&lt;/a&gt; non esiste un modo per ottenere automaticamente il valore di un GUID dopo aver effettuato un INSERT con SQL Server (cosa possibile, invece, con una normale colonna identity attraverso SELECT @@IDENTITY in coda alla INSERT).&lt;/p&gt; &lt;p&gt;Bisogna perciò adottare altre tecniche, come ad esempio le tre suggerite in &lt;a title="How to retrieve the newly inserted GUID value?" href="http://vyaskn.tripod.com/retrieve_guid_value_like_identity.htm" target="_blank"&gt;questo articolo&lt;/a&gt;. In breve si potrebbe:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;creare una Stored Procedure per l'INSERT che generi il valore per il GUID (invece che generarlo automaticamente assegnando la funzione NEWID() alla colonna), ne memorizzi il valore e lo resitutuisca dopo aver effettuato l'INSERT;  &lt;li&gt;aggiungere un trigger associato alla INSERT della tabella per cui ci interessa il GUID che restituisca il valore del GUID generato all'inserimento, magari fatto inmodo da utilizzare @@GUID (analogo a @@IDENTITY)  &lt;li&gt;non far generare automaticamente il GUID da SQL Server, ma &lt;a title="How To Use CoCreateGUID API to Generate a GUID with VB" href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;q176790" target="_blank"&gt;generarlo sul client&lt;/a&gt; prima dell'INSERT e memorizzarne il valore.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Per tutti i dettagli:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a title="How to retrieve the newly inserted GUID value?" href="http://vyaskn.tripod.com/retrieve_guid_value_like_identity.htm" target="_blank"&gt;How to retrieve the newly inserted GUID value?&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:65863147-57e9-4c6f-8f2c-98cb6e9a30f2" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/GUID" rel="tag"&gt;GUID&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SQL" rel="tag"&gt;SQL&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SQL%20Server" rel="tag"&gt;SQL Server&lt;/a&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2008/01/05/Come-ottenere-il-valore-di-uno-Uniqueidentifier-dopo-l_2700_insert-con-SQL-server.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=14036" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="SQL" scheme="http://dotnetside.org/blogs/lucab/archive/tags/SQL/default.aspx" /></entry><entry><title>Buon Anno</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2008/01/01/Buon-Anno.aspx" /><id>/blogs/lucab/archive/2008/01/01/Buon-Anno.aspx</id><published>2008-01-02T07:18:27Z</published><updated>2008-01-02T07:18:27Z</updated><content type="html">&lt;p&gt;Buon 2008 a tutti.&lt;/p&gt; &lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2008/01/01/Buon-Anno.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=13936" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="Varie" scheme="http://dotnetside.org/blogs/lucab/archive/tags/Varie/default.aspx" /></entry><entry><title>Come cambiare il tab visibile nel controllo Tabs dell'AJAX Control Toolkit usando JavaScript</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2007/11/25/Come-cambiare-il-tab-visibile-nel-controllo-Tabs-dell_2700_AJAX-Control-Toolkit-usando-JavaScript.aspx" /><id>/blogs/lucab/archive/2007/11/25/Come-cambiare-il-tab-visibile-nel-controllo-Tabs-dell_2700_AJAX-Control-Toolkit-usando-JavaScript.aspx</id><published>2007-11-25T16:06:00Z</published><updated>2007-11-25T16:06:00Z</updated><content type="html">&lt;p&gt;In un sito web a cui sto lavorando ho inserito in una pagina il &lt;a title="Tabs sample" href="http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Tabs/Tabs.aspx" target="_blank"&gt;controllo Tabs&lt;/a&gt; dell'&lt;a title="AJAX Control Toolkit" href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=AtlasControlToolkit" target="_blank"&gt;AJAX Control Toolkit&lt;/a&gt;. In questa pagina avevo l'esigenza di permettere al visitatore di cambiare il tab visibile anche mediante un link nella pagina stessa. &lt;/p&gt; &lt;p&gt;All'inizio ho provato semplicemente con un LinkButton inserito in un UpdatePanel, modificando dal lato server la proprietà ActiveTabIndex del TabContainer. Questa soluzione, semplicissima da implementare (anche se probabilmente genera parecchio codice superfluo), creava problemi con il rendering di una mappa visualizzata in uno dei tab (problema di cui ho scritto &lt;a title="Mappe di Virtual Earth e controllo Tabs di AJAX Control Toolkit" href="http://www.dotnetside.org/blogs/lucab/archive/2007/10/05/Mappe-di-Virtual-Earth-e-controllo-Tabs-di-AJAX-Control-Toolkit.aspx"&gt;in un precedente post&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;Allora ho provato ad utilizzare JavaScript, ma un primo abbozzo che sembrava funzionare senza problemi, in realtà si è dimostrato compatibile solo con IE (ho provato IE7, non so su IE6) e non con Firefox.&lt;/p&gt; &lt;p&gt;Dopo qualche inutile tentativo per rendere il mio approccio compatibile anche con Firefox, in &lt;a title="HowTo : Change Visible Tab Using JavaScript in the MS AJAX TabControl" href="http://blogs.msdn.com/phaniraj/archive/2007/04/16/howto-change-visible-tab-using-javascript-in-the-ms-ajax-tabcontrol.aspx" target="_blank"&gt;questo post&lt;/a&gt; ho trovato la spiegazione del metodo giusto per affrontare il problema. &lt;/p&gt; &lt;p&gt;Il trucco è nel riferirsi al Behavior corrispondente al controllo (come sempre per i controlli dell'&lt;a title="AJAX Control Toolkit" href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=AtlasControlToolkit" target="_blank"&gt;AJAX Control Toolkit&lt;/a&gt;), per il quale si trovano esposti i metodi e le proprietà "pubblici"&lt;sup&gt;[1]&lt;/sup&gt;, accessibili lato client. Per accedere al Behavior, è sufficiente riferirsi in JavaScript alla proprietà &lt;strong&gt;control&lt;/strong&gt; del TabContainer.&lt;/p&gt; &lt;p&gt;Riassumo qui come fare.&lt;/p&gt; &lt;p&gt;Dato un controllo Tabs, costituito da un TabContainer col nome MyTabs e dai TabPanel interni ad esso, ad esempio:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;ajaxToolKit&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TabContainer&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"MyTabs"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  	&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;ajaxToolKit&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TabPanel&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"tab1"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
		&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;HeaderTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; Uno &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;HeaderTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
		&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; 
			Primo pannello
		&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
	&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;ajaxToolKit&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TabPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
	&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;ajaxToolKit&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TabPanel&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"tab2"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
		&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;HeaderTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; Due &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;HeaderTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
		&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
			Secondo pannello
		&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
	&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;ajaxToolKit&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TabPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
	&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;ajaxToolKit&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TabPanel&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"tab3"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;br&gt;&lt;/span&gt;		&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;HeaderTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; Tre &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;HeaderTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
		&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
			Terzo pannello
		&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
	&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;ajaxToolKit&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TabPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;ajaxToolKit&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TabContainer&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Basterà inserire nella pagina il seguente codice BLOCKED SCRIPT&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; changeTab( tabIndex ){ 
&lt;span style="color:#0000ff;"&gt;    var&lt;/span&gt; tabBehavior = $get('&lt;font color="#804000"&gt;&amp;lt;%=MyTabs.ClientID%&amp;gt;&lt;/font&gt;').control; 
    tabBehavior.set_activeTabIndex(tabIndex); 
}&lt;/pre&gt;
&lt;p&gt;A questo punto un semplice collegamento ipertestuale, inserito in un punto qualsiasi della pagina (e quindi anche in uno dei TabPanel) può essere sufficiente a richiamare la funzione.&lt;/p&gt;
&lt;p&gt;Ad esempio:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;a&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;href&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"BLOCKED SCRIPTchangeTab(1);"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Vai al secondo tab&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;a&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6858e5de-9a8a-492e-a37f-e33b2977bb36" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ajax%20Control%20Toolkit" rel="tag"&gt;ajax Control Toolkit&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ajax" rel="tag"&gt;ajax&lt;/a&gt;, &lt;a href="http://technorati.com/tags/javascript" rel="tag"&gt;javascript&lt;/a&gt;, &lt;a href="http://technorati.com/tags/tabs" rel="tag"&gt;tabs&lt;/a&gt;, &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2007/11/25/Come-cambiare-il-tab-visibile-nel-controllo-Tabs-dell_2700_AJAX-Control-Toolkit-usando-JavaScript.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;a title="fn1" name="fn1"&gt;&lt;/a&gt;&lt;sup&gt;[1]&lt;/sup&gt; Trattandosi di JavaScript, non ha molto senso parlare di metodi, proprietà, pubblico e privato, anche se sia nella libreria AJAX di Microsoft che in quelle dell'AJAX Control Toolkit sono state adottate convenzioni per i nomi che rendono la programmazione in JavaScript simile alla programmazione ad oggetti. Per approfondimenti sul tema si può partire da &lt;a title="Scripting: Creare una classe con Javascript" href="http://blog.boschin.it/archive/2007/07/22/Scripting-Creare-una-classe-con-Javascript.aspx" target="_blank"&gt;questo post&lt;/a&gt; di &lt;a title="Profilo personale MVP - Mr.  Andrea  Boschin , Microsoft Certified Professional .NET" href="https://mvp.support.microsoft.com/profile/Andrea.Boschin" target="_blank"&gt;Andrea Boschin&lt;/a&gt;.&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=12474" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="ASP.NET" scheme="http://dotnetside.org/blogs/lucab/archive/tags/ASP.NET/default.aspx" /><category term="AJAX" scheme="http://dotnetside.org/blogs/lucab/archive/tags/AJAX/default.aspx" /><category term="JavaScript" scheme="http://dotnetside.org/blogs/lucab/archive/tags/JavaScript/default.aspx" /></entry><entry><title>PostBack con AJAX per le CheckBox di un controllo TreeView</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2007/11/18/PostBack-con-AJAX-per-le-CheckBox-di-un-controllo-TreeView.aspx" /><id>/blogs/lucab/archive/2007/11/18/PostBack-con-AJAX-per-le-CheckBox-di-un-controllo-TreeView.aspx</id><published>2007-11-19T07:21:55Z</published><updated>2007-11-19T07:21:55Z</updated><content type="html">&lt;p&gt;La soluzione proposta nel &lt;a title="Forzare il PostBack per le CheckBox di un controllo TreeView" href="http://www.dotnetside.org/blogs/lucab/archive/2007/11/18/Forzare-il-PostBack-per-le-CheckBox-di-un-controllo-TreeView.aspx"&gt;post precedente&lt;/a&gt; presenta almeno un paio di inconvenienti significativi:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;deve essere "aggiustata" per poter funzionare su diversi tipi di browser (probabilmente annegando tra gli &lt;em&gt;if&lt;/em&gt;)&lt;/li&gt; &lt;li&gt;non funziona con AJAX, poiché anche inserendo il controllo TreeView in un UpdatePanel, il click su una CheckBox genera ovviamente un PostBack sincrono&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Una soluzione migliore e, forse, anche più semplice, l'ho trovata su &lt;a title="Asp.Net 2.0 Treeview - How to AutoPostback when a TreeNode's checkbox gets checked?" href="http://forums.asp.net/p/1109288/1888180.aspx" target="_blank"&gt;questo thread&lt;/a&gt; tra i &lt;a title="ASP.NET Forums" href="http://forums.asp.net/" target="_blank"&gt;forum di ASP.NET&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Si inserisce nella pagina un controllo Button, reso invisibile attraverso lo stile, e al'evento OnClick del TreeView si simula una Click del controllo Button. A questo punto il PostBack è garantito. Se, inoltre, il TreeView ed il Button sono entrambi in un UpdatePanel, sarà generato un PostBack asincrono.&lt;/p&gt; &lt;p&gt;In questo modo, in più, si ottiene anche una maggiore compatibilità crossbrowser, lasciando questo fastidioso compito al rendering di ASP.NET ed alla libreria AJAX di Microsoft.&lt;/p&gt; &lt;p&gt;Riepilogando, nella pagina si inserisce:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;ScriptManager&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"ScriptManager1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;UpdatePanel&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"UpdatePanel1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeView&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"TV1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ShowCheckBoxes&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Leaf"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Nodes&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"1"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 1.1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"1.1"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 1.2"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"1.2"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 1.3"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"1.3"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 2"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"2"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 2.1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"2.1"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 2.2"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"2.2"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;                    
        &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 3"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"3"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 3.1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"3.1"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 3.2"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"3.2"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt; 
          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 3.3"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"3.3"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 3.4"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"3.4"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;                    
        &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Nodes&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeView&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;Button&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Btn"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;UpdatePanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Mentre il codice corrispondente, con riferimento all'esempio del post precedente (si intercetta l'evento CheckChanged per imporre solo una CheckBox spuntata) diventa:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;    Protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; Page_Load(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Object&lt;/span&gt;, _
                &lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; e &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="color:#0000ff;"&gt;Handles&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.Load
        &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.IsPostBack = &lt;span style="color:#0000ff;"&gt;False&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
            TV1.Attributes.Add("&lt;span style="color:#8b0000;"&gt;onclick&lt;/span&gt;", _&lt;br&gt;                &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;.Format("&lt;span style="color:#8b0000;"&gt;$get('{0}').click();&lt;/span&gt;", Btn.ClientID))
            Btn.Attributes.Add("&lt;span style="color:#8b0000;"&gt;style&lt;/span&gt;", "&lt;span style="color:#8b0000;"&gt;visibility: hidden&lt;/span&gt;")
        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;

    &lt;span style="color:#0000ff;"&gt;Protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; TV1_TreeNodeCheckChanged(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Object&lt;/span&gt;, _
            &lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; e &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; System.Web.UI.WebControls.TreeNodeEventArgs) _
            &lt;span style="color:#0000ff;"&gt;Handles&lt;/span&gt; TV1.TreeNodeCheckChanged
        &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; e.Node.Checked &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Each&lt;/span&gt; n &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; TreeNode &lt;span style="color:#0000ff;"&gt;In&lt;/span&gt; TV1.Nodes
                &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.UncheckOtherNodes(n, e.Node)
            &lt;span style="color:#0000ff;"&gt;Next&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;

    &lt;span style="color:#0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; UncheckOtherNodes(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; n &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; TreeNode, _
            &lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; nc &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; TreeNode)
        &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; n.ChildNodes.Count &amp;gt; 0 &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Each&lt;/span&gt; cn &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; TreeNode &lt;span style="color:#0000ff;"&gt;In&lt;/span&gt; n.ChildNodes
                &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.UncheckOtherNodes(cn, nc)
            &lt;span style="color:#0000ff;"&gt;Next&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;Else&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; n &lt;span style="color:#0000ff;"&gt;IsNot&lt;/span&gt; nc &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
                n.Checked = &lt;span style="color:#0000ff;"&gt;False&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;cambiando, quindi, solo la parte relativa al Page.Load&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7970905f-17f4-4c7b-b74f-2d520832788c" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/vb.net" rel="tag"&gt;vb.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ajax" rel="tag"&gt;ajax&lt;/a&gt;, &lt;a href="http://technorati.com/tags/treeview" rel="tag"&gt;treeview&lt;/a&gt;, &lt;a href="http://technorati.com/tags/checkbox" rel="tag"&gt;checkbox&lt;/a&gt;, &lt;a href="http://technorati.com/tags/postback" rel="tag"&gt;postback&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2007/11/18/PostBack-con-AJAX-per-le-CheckBox-di-un-controllo-TreeView.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=12037" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="VB.NET" scheme="http://dotnetside.org/blogs/lucab/archive/tags/VB.NET/default.aspx" /><category term="ASP.NET" scheme="http://dotnetside.org/blogs/lucab/archive/tags/ASP.NET/default.aspx" /><category term="AJAX" scheme="http://dotnetside.org/blogs/lucab/archive/tags/AJAX/default.aspx" /></entry><entry><title>Forzare il PostBack per le CheckBox di un controllo TreeView</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2007/11/18/Forzare-il-PostBack-per-le-CheckBox-di-un-controllo-TreeView.aspx" /><id>/blogs/lucab/archive/2007/11/18/Forzare-il-PostBack-per-le-CheckBox-di-un-controllo-TreeView.aspx</id><published>2007-11-19T07:02:56Z</published><updated>2007-11-19T07:02:56Z</updated><content type="html">&lt;p&gt;&lt;img style="margin:0px 0px 0px 20px;" alt="Navigation Controls" src="http://static.flickr.com/2096/2043931844_b606ee4476.jpg" align="right" border="0"&gt;Il controllo web di ASP.NET TreeView consente, attraverso la proprietà ShowCheckBoxes, di mostrare accanto ad ogni nodo una CheckBox.&lt;/p&gt; &lt;p&gt;Precisamente, è possibile assegnare a ShowCheckBoxes i valori &lt;em&gt;All&lt;/em&gt;, &lt;em&gt;Leaf&lt;/em&gt;, &lt;em&gt;None&lt;/em&gt;, &lt;em&gt;Parent&lt;/em&gt;, &lt;em&gt;Root &lt;/em&gt;a seconda del tipo di nodi per i quali si vogliono visualizzare le CheckBox.&lt;/p&gt; &lt;p&gt;Ad esempio con il seguente codice:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeView&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"TV1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ShowCheckBoxes&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Leaf"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Nodes&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"1"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 1.1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"1.1"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&lt;img alt="TreeView" src="http://static.flickr.com/2285/2043877501_78be7fe2bc.jpg" align="right" border="0"&gt;&lt;/span&gt;            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 1.2"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"1.2"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 1.3"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"1.3"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 2"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"2"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 2.1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"2.1"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 2.2"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"2.2"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;                    
        &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 3"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"3"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 3.1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"3.1"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 3.2"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"3.2"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt; 
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 3.3"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"3.3"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Nodo 3.4"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"3.4"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;                    
        &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeNode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Nodes&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;asp&lt;/span&gt;:&lt;span style="color:#800000;"&gt;TreeView&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;si avrebbe il risultato visualizzato nell'immagine a lato.&lt;/p&gt;
&lt;p&gt;Il problema è che non c'è verso di impostare un PostBack automatico per l'evento click su una CheckBox.&lt;/p&gt;
&lt;p&gt;Per esempio, supponiamo di voler imporre che nel TreeView indicato possa essere selezionata una sola CheckBox. Il codice potrebbe essere il seguente:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;    Protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; TV1_TreeNodeCheckChanged(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Object&lt;/span&gt;, _
            &lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; e &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; System.Web.UI.WebControls.TreeNodeEventArgs) _
            &lt;span style="color:#0000ff;"&gt;Handles&lt;/span&gt; TV1.TreeNodeCheckChanged
        &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; e.Node.Checked &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Each&lt;/span&gt; n &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; TreeNode &lt;span style="color:#0000ff;"&gt;In&lt;/span&gt; TV1.Nodes
                &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.UncheckOtherNodes(n, e.Node)
            &lt;span style="color:#0000ff;"&gt;Next&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;

    &lt;span style="color:#0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; UncheckOtherNodes(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; n &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; TreeNode, _
            &lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; nc &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; TreeNode)
        &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; n.ChildNodes.Count &amp;gt; 0 &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Each&lt;/span&gt; cn &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; TreeNode &lt;span style="color:#0000ff;"&gt;In&lt;/span&gt; n.ChildNodes
                &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.UncheckOtherNodes(cn, nc)
            &lt;span style="color:#0000ff;"&gt;Next&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;Else&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; n &lt;span style="color:#0000ff;"&gt;IsNot&lt;/span&gt; nc &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
                n.Checked = &lt;span style="color:#0000ff;"&gt;False&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Per intercettare l'evento, però, è necessario un altro controllo che generi il PostBack, ad esempio un altro Button nella stessa pagina.&lt;/p&gt;
&lt;p&gt;Cercando in rete ho trovato &lt;a title="TreeView checkboxes AutoPostBack with AJAX" href="http://www.thescripts.com/forum/thread619423.html" target="_blank"&gt;qui&lt;/a&gt; una soluzione al problema, che riporto. In pratica si aggiunge un po' di codice JavaScript nella pagina:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; postbackOnCheck() {
    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; o = &lt;span style="color:#0000ff;"&gt;window&lt;/span&gt;.event.srcElement;
    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (o.tagName == 'INPUT' &amp;amp;&amp;amp; o.type == 'checkbox' &amp;amp;&amp;amp;
    o.&lt;span style="color:#0000ff;"&gt;name&lt;/span&gt; != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; o.&lt;span style="color:#0000ff;"&gt;name&lt;/span&gt;.indexOf('CheckBox') &amp;gt; -1) {
        __doPostBack("&lt;span style="color:#8b0000;"&gt;&lt;/span&gt;","&lt;span style="color:#8b0000;"&gt;&lt;/span&gt;");
    }
}&lt;/pre&gt;
&lt;p&gt;Si imposta, quindi, l'attributo OnClick al controllo TreeView per richiamare questa funzione:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;    Protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; Page_Load(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Object&lt;/span&gt;, _
            &lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; e &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="color:#0000ff;"&gt;Handles&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.Load
        &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.IsPostBack = &lt;span style="color:#0000ff;"&gt;False&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;
            TV1.Attributes.Add("&lt;span style="color:#8b0000;"&gt;OnClick&lt;/span&gt;", "&lt;span style="color:#8b0000;"&gt;postbackOnCheck()&lt;/span&gt;")
        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;ed il gioco è fatto, ogni volta che si seleziona o deseleziona una CheckBox viene generato un PostBack e quindi la funzione di gestione dell'evento.&lt;/p&gt;
&lt;p&gt;Questa soluzione, però, soffre di alcuni difetti (compatibilità cross browser, utilizzo con AJAX) che saranno oggetto di un prossimo post.&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6c5dd684-67c9-494b-bd2a-e8e79958603d" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/vb.net" rel="tag"&gt;vb.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/javascript" rel="tag"&gt;javascript&lt;/a&gt;, &lt;a href="http://technorati.com/tags/treeview" rel="tag"&gt;treeview&lt;/a&gt;, &lt;a href="http://technorati.com/tags/checkbox" rel="tag"&gt;checkbox&lt;/a&gt;, &lt;a href="http://technorati.com/tags/postback" rel="tag"&gt;postback&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2007/11/18/Forzare-il-PostBack-per-le-CheckBox-di-un-controllo-TreeView.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=12035" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="VB.NET" scheme="http://dotnetside.org/blogs/lucab/archive/tags/VB.NET/default.aspx" /><category term="ASP.NET" scheme="http://dotnetside.org/blogs/lucab/archive/tags/ASP.NET/default.aspx" /><category term="JavaScript" scheme="http://dotnetside.org/blogs/lucab/archive/tags/JavaScript/default.aspx" /></entry><entry><title>Quiz: LIFO, FIFO e poste italiane</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2007/11/05/Quiz_3A00_-LIFO_2C00_-FIFO-e-poste-italiane.aspx" /><id>/blogs/lucab/archive/2007/11/05/Quiz_3A00_-LIFO_2C00_-FIFO-e-poste-italiane.aspx</id><published>2007-11-05T22:46:00Z</published><updated>2007-11-05T22:46:00Z</updated><content type="html">&lt;p&gt;&lt;a href="http://it.wikipedia.org/wiki/Immagine:FIFO-LIFO.svg" target="_blank" title="200px-FIFO-LIFO_svg"&gt;&lt;img style="margin:5px 0px 15px 25px;" src="http://static.flickr.com/2181/1863569933_7ac4802d0a.jpg" border="0" alt="FIFO LIFO" width="200" height="161" align="right" /&gt;&lt;/a&gt;Sapendo che:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://it.wikipedia.org/wiki/Lifo" target="_blank" title="LIFO"&gt;LIFO&lt;/a&gt; sta per Last In First Out, un metodo per gestire le code in cui il primo arrivato &amp;egrave; l&amp;#39;ultimo ad uscire &lt;/li&gt;&lt;li&gt;&lt;a href="http://it.wikipedia.org/wiki/Fifo" target="_blank" title="FIFO"&gt;FIFO&lt;/a&gt; sta per Fisrt In First Out, per cui il primo arrivato &amp;egrave; il primo ad uscire &lt;/li&gt;&lt;li&gt;sono abbonato ad una rivista mensile e le poste me ne&amp;nbsp;hanno consegnato il numero di settembre qualche giorno dopo averne ricevuto il numero di ottobre (con notevole ritardo pure questo)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;quale metodo usano alle poste per smaltire le consegne arretrate?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div id="0767317B-992E-4b12-91E0-4F059A8CECA8:cc6f55f9-ddb5-4854-83e6-fcd49d311c21" class="wlWriterEditableSmartContent" style="display:inline;margin:0px;padding:0px;"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/poste"&gt;poste&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/lifo"&gt;lifo&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/fifo"&gt;fifo&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2007/11/05/Quiz_3A00_-LIFO_2C00_-FIFO-e-poste-italiane.aspx" class="tr-linkcount"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=11284" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="Varie" scheme="http://dotnetside.org/blogs/lucab/archive/tags/Varie/default.aspx" /></entry><entry><title>Congratulations. You won 15th Prize in the October 2007 Contest</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2007/11/04/Congratulations.-You-won-15th-Prize-in-the-October-2007-Contest.aspx" /><id>/blogs/lucab/archive/2007/11/04/Congratulations.-You-won-15th-Prize-in-the-October-2007-Contest.aspx</id><published>2007-11-04T21:11:13Z</published><updated>2007-11-04T21:11:13Z</updated><content type="html">&lt;p&gt;&lt;a title="Dilbert Board Game" href="http://static.flickr.com/2067/1854582839_16386a1168.jpg" target="_blank"&gt;&lt;img height="120" alt="Dilbert Board Game" src="http://static.flickr.com/2067/1854582839_16386a1168.jpg" width="120" align="right" border="0"&gt;&lt;/a&gt;... ossia l'ambitissimo Dilbert Board Game &lt;img src="http://www.dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="Io sono incasinato, ma le poste ..." href="http://www.dotnetside.org/blogs/lucab/archive/2007/10/03/Io-sono-incasinato_2C00_-ma-le-poste_2E002E002E00_.aspx"&gt;Chissà&lt;/a&gt; se mi arriverà per Natale...&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:26761d1a-4104-44eb-900d-f0df470df6aa" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/community%20credit" rel="tag"&gt;community credit&lt;/a&gt;, &lt;a href="http://technorati.com/tags/varie" rel="tag"&gt;varie&lt;/a&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2007/11/04/Congratulations.-You-won-15th-Prize-in-the-October-2007-Contest.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=11248" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="Varie" scheme="http://dotnetside.org/blogs/lucab/archive/tags/Varie/default.aspx" /></entry><entry><title>Come installare i gadget per la sidebar in inglese su Vista in italiano</title><link rel="alternate" type="text/html" href="/blogs/lucab/archive/2007/11/03/Come-installare-i-gadget-per-la-sidebar-in-inglese-su-Vista-in-italiano.aspx" /><id>/blogs/lucab/archive/2007/11/03/Come-installare-i-gadget-per-la-sidebar-in-inglese-su-Vista-in-italiano.aspx</id><published>2007-11-03T16:02:00Z</published><updated>2007-11-03T16:02:00Z</updated><content type="html">&lt;p&gt;Qualche giorno fa ho scaricato&amp;nbsp;&lt;a title="Uptime Gadget" href="http://gallery.live.com/liveItemDetail.aspx?li=9edd60d7-5810-44b4-a72e-b3416de5758b&amp;amp;bt=1&amp;amp;pl=1" target="_blank"&gt;Uptime Gadget&lt;/a&gt;, un semplice gadget per la sidebar di Vista che permette di visualizzare il tempo trascorso dall'ultimo riavvio.&lt;/p&gt; &lt;p&gt;Ho provato ad installarlo, ma senza alcun risultato: non avevo alcun messaggio e il gadget non era stato aggiunto a quelli già presenti.&lt;/p&gt; &lt;p&gt;Cercando un po' in rete, ho letto che questo problema capita spesso quando si prova ad installare un gadget in lingua inglese su Vista in italiano. Più in generale, può capitare quando le lingue del gadget e di Vista non coincidono&lt;sup&gt;[1]&lt;/sup&gt;.&lt;/p&gt; &lt;p&gt;Grazie ad una dritta suggerita &lt;a title="archivio forum hwupgrade" href="http://www.hwupgrade.it/forum/archive/index.php/t-1395699.html" target="_blank"&gt;qui&lt;/a&gt; ho scoperto come ovviare all'inconveniente:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Scompattare il file di installazione del gadget, che termina appunto con l'estensione .gadget&amp;nbsp;in una cartella con lo stesso nome, compresa l'estensione (nel mio caso si trattava di Uptime.gadget). Per farlo è sufficiente aprire il file utilizzando &lt;a title="Winrar" href="http://winrar.it/" target="_blank"&gt;Winrar&lt;/a&gt;.  &lt;li&gt;Rinominare la sottocartella en-US, che si trova nella cartella&amp;nbsp;creata, in it-IT  &lt;li&gt;Copiare la cartella Uptime.Gadget in C:\Program Files\Windows Sidebar\Gadgets, fornendo le necessarie autorizzazioni quando richieste dallo UAC&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;A questo punto si può tranquillamente aggiungere il gadget alla sidebar, poiché comparirà tra quelli disponibili. &lt;img alt="uptimegadget" src="http://static.flickr.com/2286/1844898127_28014a96eb.jpg" align="right" border="0"&gt;&lt;/p&gt; &lt;p&gt;Nell'immagine il gadget in funzione. &lt;br&gt;(Giacché c'ero l'ho tradotto,&amp;nbsp;cambiando le stringhe nel file Uptime.Gadget\it-IT\core\core.framework.vbs)&lt;/p&gt; &lt;p&gt; &lt;hr&gt;  &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;a name="fn1"&gt;&lt;/a&gt;&lt;sup&gt;[1]&lt;/sup&gt;&amp;nbsp;Forse è per questo che &lt;a title="Windows Live Gallery &amp;gt; Windows Vista &amp;gt; Sidebar &amp;gt; Tutte le categorie" href="http://gallery.live.com/results.aspx?c=0&amp;amp;bt=1&amp;amp;pl=1" target="_blank"&gt;sul sito ufficiale&lt;/a&gt; i gadget per la sidebar di Vista mi appaiono di default&amp;nbsp;filtrati per lingua = italiano&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:e92d3cd3-abd7-42d7-bbb9-96bca2b75c09" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/windows%20vista" rel="tag"&gt;windows vista&lt;/a&gt;, &lt;a href="http://technorati.com/tags/gadget" rel="tag"&gt;gadget&lt;/a&gt;, &lt;a href="http://technorati.com/tags/sidebar" rel="tag"&gt;sidebar&lt;/a&gt;, &lt;a href="http://technorati.com/tags/localizzazione" rel="tag"&gt;localizzazione&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;a class="tr-linkcount" href="http://technorati.com/search/http://www.dotnetside.org/blogs/lucab/2007/11/03/Come-installare-i-gadget-per-la-sidebar-in-inglese-su-Vista-in-italiano.aspx"&gt;View blog reactions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=11205" width="1" height="1"&gt;</content><author><name>lucab</name><uri>http://dotnetside.org/members/lucab/default.aspx</uri></author><category term="Windows Vista" scheme="http://dotnetside.org/blogs/lucab/archive/tags/Windows+Vista/default.aspx" /><category term="Localizzazione" scheme="http://dotnetside.org/blogs/lucab/archive/tags/Localizzazione/default.aspx" /></entry></feed>